1

我正在使用一个命令行应用程序,它期望参数生成所需的输出。我正在尝试使用createprocess()inCPP来调用应用程序并传递参数。我在类型转换上有困难。. 它说不const char*兼容LPTSTR

如果我说

char a[]="param 1 param2";
createprocess("C:\\exmpl.exe",a,......)

我用过L"C:\\exmpl.exe",但它不工作。.

4

5 回答 5

1

CreateProcess此参数需要一个可变(非const)字符串。您显然是在传递一个const字符串。

下次请粘贴您正在使用的实际代码。

于 2012-08-26T15:36:38.870 回答
0

你确定不是CreateProcess吗?无论如何,尝试

_T("C:\\exmpl.exe")

此宏会将您的字符串相应地扩展为宽字符串。

于 2012-08-26T12:56:43.400 回答
0

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, ...);
于 2012-08-26T14:01:00.133 回答
0

您还可以将您的 VC 项目设置为多字节字符集。只需转到项目属性,然后在常规选项卡中您就可以看到字符集。

于 2012-08-26T15:57:36.687 回答
0

尝试

TCHAR a[] = TEXT("param 1 param2");
CreateProcess(TEXT("C:\\exmp1.exe", a, ...);

如果您的应用程序设置为使用 UNICODE,则 TEXT 宏用于将您的字符串更改为 UNICODE。

于 2012-08-26T13:28:10.807 回答