我正在修改一个程序,以将命令行参数作为类型为LPSTR
的变量。当前,该值在程序中进行了硬编码,并以_T("program.exe")
形式传递给所需的函数。该函数期望类型为LPCTSTR
。我试图将命令行参数从LPSTR
强制转换为LPCTSTR
无济于事。使用char*
作为中介的类似尝试也失败了。我知道我可能缺少一些愚蠢的简单知识,但是在这一点上,我将感谢您的帮助。
最佳答案
通常,LPSTR应该转换为LPCTSTR。
但是,显然不是您的情况,因此说明这对任何人都没有帮助。
如果您使用的是Visual Studio,请转到项目⟩[项目名称]属性⟩配置属性⟩常规⟩项目默认值,然后将字符集的值更改为“使用多字节字符集”
如果您使用的是自定义.vcxproj
文件,请在每个文件的内部
<PropertyGroup Condition= "'$(Configuration)|$(Platform)'=='[Configuration]|[Platform]'" Label="Configuration"></PropertyGroup>
您将需要添加以下内容:
<CharacterSet>MultiByte</CharacterSet>
如果已经有
<CharacterSet>
,则只需将其值更改为'MultiByte'。关于c++ - 将LPSTR转换为LPCTSTR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44440153/