1

我是 C++ 编程的完全新手。

我需要使用教程中提供的头文件和解决方案文件创建一个 DLL。我已经按照这里的基本步骤进行操作,但是在解决方案文件中出现以下错误:

L111 !CreateProcess(L".\\phreeqc\\phreeqc.exe",

L112 TEXT(".\\phreeqc\\phreeqc.exe .\\phreeqc\\phreeqc_input.txt .\\phreeqc\\phreeqc_input.out .\\phreeqc\\wateq4f_plus.dat")

错误:

L111

C2664 'BOOL CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFLOW,LPPROCESS_INFORMATION)':无法将参数 2 从 'const wchar_t[105]' 转换为 'LPWSTR'

L112

E0167 “const wchar_t*”类型的参数与“LPWSTR”类型的参数不兼容。

我知道上述代码行中的细节对你们中的许多人来说意义不大,但我希望有人至少能理解 C++ 错误并在这里提供帮助。

4

1 回答 1

3

Unicode 版本CreateProcess(它是一个映射到 的宏CreateProcessW)需要一个可写字符串作为lpCommandLine参数,而字符串文字是const. 因此,您不能直接为此参数传递字符串文字。

相反,您可以像这样更改代码:

WCHAR lpCommandLine [] = L"...";
BOOL ok = CreateProcess (L"your_application_name_here", lpCommandLine, ...);

文档在这里

于 2020-09-22T01:52:17.213 回答