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

问题描述 投票:1回答:3

我正在尝试将项目从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)。

我该如何解决这个问题?

c++ visual-studio-2013 mfc
3个回答
4
投票

我发现了问题所在。在其他包含目录之一中添加了“ C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include”之后,我在其他包含目录中有一个不同的“ process.h”文件,此问题已解决。


2
投票

您需要:

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

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


-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.