我正在尝试将项目从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:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include”之后,我在其他包含目录中有一个不同的“ process.h”文件,此问题已解决。
您需要:
#include <crtdefs.h>
#include <process.h>
crtdefs.h将定义/取消定义_CRT_USE_WINAPI_FAMILY_DESKTOP_APP,其中_beginthreadex包装在process.h中。
您必须包括process.h才能访问此功能。
在MFC应用程序内部,您应该使用AfxBeginThread。