c++ - 字符串。 TCHAR LPWCS LPCTSTR CString。这是什么,简单快速

标签 c++ string winapi

TCHAR szExeFileName[MAX_PATH]; 
GetModuleFileName(NULL, szExeFileName, MAX_PATH);

CString tmp;
lstrcpy(szExeFileName, tmp);
CString out;
out.Format("\nInstall32 at %s\n", tmp);
TRACE(tmp);

错误(格式):
error C2664: 'void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t 
*,...)' : cannot convert parameter 1 from 'const char [15]' to 'const wchar_t

我只想获取此程序启动的当前路径,并将其复制到CString中,以便可以在其他地方使用它。我目前只是尝试通过TRACE's out来了解路径。但是字符串,字符,字符数组,我永远都无法摆脱困境。有人可以给我指点吗?

最佳答案

我的猜测是您正在以Unicode模式进行编译。

尝试将格式字符串包含在_T宏中,该宏旨在提供始终正确的方法来提供常量字符串参数,而不管您是以Unicode还是ANSI模式进行编译:

out.Format(_T("\nInstall32 at %s\n"), tmp);

关于c++ - 字符串。 TCHAR LPWCS LPCTSTR CString。这是什么,简单快速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061264/

相关文章:

winapi - InterlockedCompareExchange Release() 和 Acquire() 之间有什么区别?

winapi - 获取窗口所有 ui 元素的最佳方法是什么?

c++ - 在不阻塞资源的情况下有效地等待标志状态更改?

Python 字符串帮助夏威夷语单词发音

c++ - 我可以直接访问 Windows 内核系统调用吗?

c++ - 将十进制转换为 ASCII

r - 使用 R 中 readr 包中的 read_csv 导入不带引号的字符串作为因子

c# - 如果窗口设置为 "Automatic Login",则 GetLastInputInfo API 不起作用

c++ - 从引用项目的 .lib 文件中获取 LNK1104 错误

c++ - STL 映射到自身?