代码之家  ›  专栏  ›  技术社区  ›  Nick Bolton

我怎么不正确地使用CA2W?

  •  2
  • Nick Bolton  · 技术社区  · 15 年前

    有人能解释一下为什么这个不起作用吗?

    char *test = "test";
    _TCHAR *szTest = CA2W(test);
    

    请告诉我我应该做什么。

    不是给我同等的文本,而是给我:

    ﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾﻾
    
    1 回复  |  直到 15 年前
        1
  •  4
  •   Nick Bolton    15 年前

    根据msdn,这很糟糕。所以我用这个来代替:

    char *test = "test";
    CA2W szTest(test);
    

    从这里,我们可以得到一个lpwstr类型,如果我们真的想要:

    LPWSTR test = szTest.m_psz;
    

    使用lpwstr而不是“tchar”似乎也更好——但我不确定(我认为它们本质上是相同的,但可能是错误的)。