在c++程序中为何不能正确使用CString类?
在VC++6。0中选择建立c/c++ source file,程序中包含了afx.h头文件,编译也通过了,但在link时出现如下错误:
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/exp2_b.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
不知是何原因,望高手指点。
问题点数:20、回复次数:7Top
1 楼admireO(再接再厉)回复于 2001-04-29 23:31:00 得分 0
应该是找不到动态连接库了Top
2 楼joke100(咱们去SLEEP吧...)回复于 2001-04-30 01:02:00 得分 0
工程设置有问题,应该使用支持多线程的工程...
在工程设置对话框的C/C++标签上点击
在最上面Reset按钮旁边的Category中选择Code Generation,这时右下侧出现Use run-time library:选项,把单线程Single-Threaded*改为一种多线程的即可,比如Debug Multithreaded DLL或者Multithreaded...
OKTop
3 楼ydogg(灰毛兔频频)回复于 2001-04-30 10:17:00 得分 0
但是这跟线程又什么关系呢?
不是只要迁入定义CString头文件就可以了吗?
指点迷津!谢谢!Top
4 楼redleaves(程序员)回复于 2001-04-30 10:28:00 得分 0
你给出的出错信息说明,是你在使用多线程的宏时,编译器找不到宏的定义。和字符串类没有关系。Top
5 楼goodpotato(小林)回复于 2001-04-30 10:47:00 得分 20
CString类是属于MFC的,而MFC默认是多线程。但是你开发的是C/C++程序,C/C++程序是单线程的,因此它们发生冲突。
解决方案: 你要告诉连接器生成的是多线程程序。
步骤:
1.在VC中点击菜单project/setting
2.在弹出的对话框中选择C/C++页
3.选择 Category下拉框的Code Geration
4.再选择Use run-time library下拉框的Debug Mutithreaded
5.点击OK
6.重新编译你的程序应该通过。
7.给我送分。
8.谢谢。
Top
6 楼fatty(自由自在,随心所欲)回复于 2001-04-30 10:49:00 得分 0
redleaves(无心红叶)说的没错Top
7 楼sl_liang(咖啡)回复于 2001-04-30 11:47:00 得分 0
同意!Top




