错误 C3861:"_tcsdup":找不到标识符



这是我第一次,我想使用windows CreateProcess函数创建一个并行进程。根据MSDN的示例,我创建了一个LPTSTR"(非const) TCHAR字符串"命令行参数,如下所示

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

此处讨论LPTSTR和其他char和string类型

命令行参数像这样传递给CreateProcess

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

这些标头是

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

编译错误:

error C3861: '_tcsdup': identifier not found

搜索此错误发现相同的错误,但解决方案是特定于使用。net框架,而不是解释error C3861: '_tcsdup'

不确定是否相关,但if (!CreateProcess(NULL, szCmdline, /*...*/) ) cout << "ERROR: cannot start CreateProcess" << endl;上也有error C2059: syntax error : ')'

这个错误是如何修复的?这是怎么回事?

此外,我正在使用CreateProcess作为学习Linux fork()函数的学习步骤- Visual Studio接口对我来说更容易使用,一旦调试并工作,我将更改为g++接口并更改为fork()并从那里进行调试-因此,如果可能的话,导致fork()的解决方案是最有益的。

添加如下include:

#include <tchar.h>

_tcsdup是一个宏,根据Unicode设置映射到实现函数。由于没有包含头文件(tchar.h),编译器认为它是一个符号,并发出错误的代码。

根据实际的定位设置_tcsdump映射到其中之一:

  • _strdup
  • _mbsdup
  • _wcsdup

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

相关内容

  • 没有找到相关文章

最新更新