我正在修改一个程序,以将命令行参数作为类型为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/

10-12 16:11