這是我第一次使用windows CreateProcess函數進行並行處理。基於在MSDN的例子我創建了一個LPTSTR
"(non-const) TCHAR string"command line參數這樣錯誤C3861:'_tcsdup':標識符未找到
LPTSTR szCmdline[] = _tcsdup(TEXT("\C:\\MyProgram_linux_1.1\\MyProgram.exe"));
的LPTSTR等char and string types are discussed here
命令行參數被傳遞給CreateProcess
這樣
if (!CreateProcess(NULL, szCmdline, /*...*/)) cout << "ERROR: cannot start CreateProcess" << endl;
而這些標題的are present
#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界面是我更容易使用,一旦這個調試和作品,我會改變的G ++接口,並切換到fork()
,並從那裏調試 - 這樣的解決方案導致fork()
,如果可能的話,是最有利的。
您需要的#include''(或將'_tcsdup'改爲'strdup'並停止使用'T'宏)。 –
2013-03-13 18:12:56
哇...你正在使用'CreateProcess'來學習fork嗎?爲什麼不學習'fork'?這些是非常不同的野獸。 – nneonneo 2013-03-13 18:13:06
'fork'和'CreateProcess'唯一的共同之處在於它們都是函數...修改'CreateProcess'大概可以幫助你理解'fork',因爲學習法語可能會幫助你說日語。 – 2013-03-13 18:15:50