2013-03-13 17 views
5

これは初めてのことですが、ウィンドウを使用して並列処理を行いたいですCreateProcess機能。 MSDNの例に基づいて、私はこのエラーC3861: '_tcsdup':識別子が見つかりません

if (!CreateProcess(NULL, szCmdline, /*...*/)) cout << "ERROR: cannot start CreateProcess" << endl; 

そして、これらのヘッダのようCreateProcessに渡されLPTSTR "(non-const) TCHAR string"command lineこの

LPTSTR szCmdline[] = _tcsdup(TEXT("\C:\\MyProgram_linux_1.1\\MyProgram.exe")); 

LPTSTRなどの引数およびその他のchar and string types are discussed here

コマンドライン引数を作成しました存在する

#include <stdio.h> 
#include <stdlib.h> 
#include <windows.h> 
#include <strsafe.h> 
#include <direct.h> 

では、このコンパイルエラーです。このエラーの

error C3861: '_tcsdup': identifier not found 

検索がthe same error but the solution was specific to using a .NET frameworkを発見したのではなくerror C3861: '_tcsdup'

ない、それが関連するかどうかわからを説明するが、if (!CreateProcess(NULL, szCmdline, /*...*/)) cout << "ERROR: cannot start CreateProcess" << endl;

error C2059: syntax error : ')'もありますこのエラーはどのように解決されますか?そして、これで何が起こっているのですか?

また、私はCreateProcess as a learning step towards learning the Linux fork()機能を使用しています - Visual Studioのインターフェイスは、私が使用しやすいであり、これは、デバッグおよび著作された後、私はそこからfork()およびデバッグにG ++インターフェイスと変更に変更されます - そうソリューション可能であればfork()につながるのが最も有益です。

+0

実際に応じて、それらのいずれかに設定_tcsdumpマップを検索します'_tcsdup'を' strdup'に変更し、 'T'マクロの使用を止めてください)。 –

+3

うわー...あなたは 'CreateProcess'を使って' fork'を学んでいますか?なぜフォークを学ばないのですか?これらは非常に異なる獣です。 – nneonneo

+0

'fork'と' CreateProcess'の共通点は、それらが両方とも関数であることだけです... 'CreateProcess'を使ってみると、フランス語が日本語を話すのに役立つように' fork'を理解するのに役立つでしょう。 –

答えて

5

は次のとおり追加します。

#include <tchar.h> 
+0

エラーC2440: '初期化中': 'wchar_t *'から 'LPTSTR []'に変換できません –

+3

Eh。 'TCHAR'と' TEXT( "string") 'と' _tcsdup'sなどを失うだけです。 'wchar_t'と' L "文字列と' wcsdup'、または '' char''と '' string''と 'strdup'を使います。シゾ・チャイルドの入力にはもう理由がありません。 – cHao

+0

なぜ、あなたはそのエラーを受けているのですか?LPTSTR stuff []はあなたが望むものではありません。 'some_char_type stuff []'や 'some_char_type * stuff'が必要です。 1つ目は、文字列へのポインタの配列を与えることです。 – cHao

3

_tcsdupは、実装機能へのマップは、あなたのUnicodeの設定に依存していること、マクロです。ヘッダファイル(tchar.h)をインクルードしていないので、コンパイラはそれをシンボルとみなし、間違ったコードを出力します。あなたは `の#include `(する必要が

  • _strdup
  • _mbsdup
  • _wcsdup

http://msdn.microsoft.com/en-us/library/y471khhc(v=vs.110).aspx

関連する問題