pra*_*ran 5 c++ mfc visual-c++
我试图这样做,但我没有找到任何方法.我问这个是因为我是Windows的新手.我试过stl-strings,但是visual studio 2008-在stl-wstring-handling中积累了bug.在其他问题上,我稍后会对此事说很多.现在有人可以解释这个问题吗?
最简单的方法是使用 MFC 字符串转换宏,定义在:
https://docs.microsoft.com/en-us/cpp/atl/reference/string-conversion-macros?view=msvc-160
例如,要转换CString为的宏LPCWSTR是CT2W(s).
另一种方法是使用专业化CStringA和CStringW类。这些是相应的 ascii 和宽版本,CString具体取决于您是否使用该UNICODE标志进行编译。所以你可以使用:
CString your_string = "blah"
CStringW wide_string = your_string;
Run Code Online (Sandbox Code Playgroud)
获得宽版本的字符串。
像这样使用转换类CT2CW FuncTakingLPCWSTR(CT2CW(cstring_var)).这保证可以在Unicode或MBCS构建中使用.
另外,请记住传递给函数的字符串可能是临时的,因此请不要将其存储以供以后使用.
这应该可以,假设您的应用程序尚未设置为 Unicode(如果是,则直接转换):
CString str("Hello, world!");
CStringW strw(str);
LPCWSTR ptr = strw;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20588 次 |
| 最近记录: |