这是我第一次使用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