我正在使用命令行应用程序,它希望参数生成所需的输出。我正在尝试使用createprocess()
中的CPP
来调用应用并传递参数。我在类型转换方面遇到了困难。 。它说const char*
与LPTSTR
不兼容。
如果我说
char a[]="param 1 param2";
createprocess("C:\\exmpl.exe",a,......)
我使用L"C:\\exmpl.exe"
但它不起作用。 。
答案 0 :(得分:1)
CreateProcess
需要此参数的可变(非const
)字符串。您显然是在传递const
字符串。
下次请粘贴您正在使用的实际代码。
答案 1 :(得分:0)
你确定它不是CreateProcess
吗?无论如何,尝试
_T("C:\\exmpl.exe")
此宏会相应地将字符串扩展为宽字符串。
答案 2 :(得分:0)
试
TCHAR a[] = TEXT("param 1 param2");
CreateProcess(TEXT("C:\\exmp1.exe", a, ...);
如果您的应用设置为使用UNICODE,TEXT宏用于将您的字符串更改为UNICODE。
答案 3 :(得分:0)
对不起,新答案:
观察第二个参数,它必须是TCHAR *(ANSI中的char *或UNICODE中的wchar_t *)。 不要使用CONST CHAR *,或者说,不要简单地将“param1 param2”传递给第二个参数,这样做:
TCHAR param[] = TEXT("param1 param2");
CreateProcess(TEXT("my exe"), param, ...);
答案 4 :(得分:0)
您还可以将VC项目设置为多字节字符集。 只需转到项目属性,在常规选项卡中就可以看到char set。