'_beginthreadex' : undeclared identifier

有可能的原因:

1.没有包含头文件 process.h

2.没有包含库文件 LIBCMT.LIB或者MSVCRT.LIB

如果仍然有这个错误

原因就是在工程->设置->C/C++->Code Generation->Use run-time libray->选 Debug Multithread(多线程),或 Multithread!运行库必须用多线程的!

并且,在dll中间没有这个问题,只有在exe中间才有这个bug,因为dll默认的是Debug Multithread,而exe默认的是single



PS:2010.4.13

过了这么长时间又碰到了这个问题

打开process.h发现_beginthreadex' 定义的前面有一个宏判断

#ifdef  _MT
_CRTIMP unsigned long  __cdecl _beginthread (void (__cdecl *) (void *),
        unsigned, void *);
_CRTIMP void __cdecl _endthread(void);
_CRTIMP unsigned long __cdecl _beginthreadex(void *, unsigned,
        unsigned (__stdcall *) (void *), void *, unsigned, unsigned *);
_CRTIMP void __cdecl _endthreadex(unsigned);
#endif

如果在程序前面#define _MT,则不存在这个问题


而这个如果在工程的设置中间改为Debug Multithread 则也可以消除这个问题                                                      

转载自  http://blog.sina.com.cn/s/blog_604a4ace010120oq.html

你可能感兴趣的:(调试)