建立一个简单的控制台程序:
#include "afx.h"
void main()
{
str="abcdefg";
int i
CString str;
i=sizeof(CString);
}
结果出现如下问题:
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol
__endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol
__beginthreadex
Debug/teststr.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe. 如果注释掉CString类的定义及使用,则没有上述问题。
请教高手这是怎么一回事呢?
#include "afx.h"
void main()
{
str="abcdefg";
int i
CString str;
i=sizeof(CString);
}
结果出现如下问题:
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol
__endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol
__beginthreadex
Debug/teststr.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe. 如果注释掉CString类的定义及使用,则没有上述问题。
请教高手这是怎么一回事呢?
你也可以在 project->settings -> C++ 中加入选项
/SUBSYSTEM:console
凡是console中使用到mfc类都要使用使用"mfc共享dll"(多线程版本的dll)
默认情况下,console不支持MFC中的类,比如CString
用到afx.h,就会有多线程的问题,修改成/MT也应该可以吧
Category选择 code generation
Use runtime library选择(Debug)Multithreaded Dll
该做法同:修改成/MT