我正在使用一个命令行应用程序,它期望参数生成所需的输出。我正在尝试使用createprocess()
inCPP
来调用应用程序并传递参数。我在类型转换上有困难。. 它说不const char*
兼容LPTSTR
。
如果我说
char a[]="param 1 param2";
createprocess("C:\\exmpl.exe",a,......)
我用过L"C:\\exmpl.exe"
,但它不工作。.
CreateProcess
此参数需要一个可变(非const
)字符串。您显然是在传递一个const
字符串。
下次请粘贴您正在使用的实际代码。
你确定不是CreateProcess
吗?无论如何,尝试
_T("C:\\exmpl.exe")
此宏会将您的字符串相应地扩展为宽字符串。
Sorry, new answer:
Watch the 2nd parameter, it must be a TCHAR* (char* in ANSI or wchar_t* in UNICODE). Don't use CONST CHAR*, or say, don't simply pass "param1 param2" to the 2nd parameter, do it like this:
TCHAR param[] = TEXT("param1 param2");
CreateProcess(TEXT("my exe"), param, ...);
您还可以将您的 VC 项目设置为多字节字符集。只需转到项目属性,然后在常规选项卡中您就可以看到字符集。
尝试
TCHAR a[] = TEXT("param 1 param2");
CreateProcess(TEXT("C:\\exmp1.exe", a, ...);
如果您的应用程序设置为使用 UNICODE,则 TEXT 宏用于将您的字符串更改为 UNICODE。