1

パラメータが目的の出力を生成することを期待するコマンドラインアプリを使用しています。アプリを呼び出してパラメーターを渡すためcreateprocess()に inを使用しようとしています。CPP型変換が苦手です。. とconst char*互換性がありませんと表示されLPTSTRます。

私が言うなら

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

使用L"C:\\exmpl.exe"しましたが、動作しません。.

4

5 に答える 5

1

CreateProcessconstこのパラメータには変更可能な (非) 文字列が必要です。どうやらconst文字列を渡しているようです。

次回は実際に使っているコードを貼り付けてください。

于 2012-08-26T15:36:38.870 に答える
0

VC プロジェクトをマルチバイト文字セットに設定することもできます。プロジェクトのプロパティに移動するだけで、一般タブに文字セットが表示されます。

于 2012-08-26T15:57:36.687 に答える
0

そうじゃないCreateProcessよね?とにかく、試してみてください

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

このマクロは、それに応じて文字列をワイド文字列に展開します。

于 2012-08-26T12:56:43.400 に答える
0

申し訳ありませんが、新しい答え:

2 番目のパラメーターに注意してください。これは TCHAR* (ANSI では char*、UNICODE では wchar_t*) でなければなりません。CONST CHAR* を使用しないでください。または、単純に「param1 param2」を 2 番目のパラメーターに渡すのではなく、次のようにします。

TCHAR param[] = TEXT("param1 param2");
CreateProcess(TEXT("my exe"), param, ...);
于 2012-08-26T14:01:00.133 に答える
0

試す

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

アプリが UNICODE を使用するように設定されている場合、TEXT マクロを使用して文字列を UNICODE に変更します。

于 2012-08-26T13:28:10.807 に答える