错误C3861:' _beginthreadex':未找到标识符

时间:2014-12-01 14:13:39

标签: c++ visual-studio-2013 mfc

我正在尝试将项目从VS2008转换为VS2013,而我遇到的问题之一就是:

c:\program files (x86)\microsoft visual studio 12.0\vc\atlmfc\include\atlbase.h(4953): error C3861: '_beginthreadex': identifier not found

我在网上搜索了一个解决方案,我已经在我的StdAfx.h中包含了process.h,(不确定它是否重要,但我把它放在#include和#include之下,否则我会收到一个“ Windows.h“已包含错误”。

我使用MFC作为共享dll,我正在使用/ MDd编译并检查-D_MT标志是否打开。 (我的代码中也没有#undef _MT。)

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

我发现问题是我有一个不同的" process.h"添加" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include"之后,在其中一个附加包含目录中的文件首先在附加包含目录的问题得到解决。

答案 1 :(得分:2)

你需要:

#include <crtdefs.h>
#include <process.h>

crtdefs.h将定义/取消定义_CRT_USE_WINAPI_FAMILY_DESKTOP_APP,其中_beginthreadex包含在process.h中。

答案 2 :(得分:-1)

您必须包含process.h才能访问此功能。

在MFC应用程序内部,您应该使用AfxBeginThread。