书上的也有错?

CNer 2001-10-07 04:44:56
小d刚学vc,借了本书,叫《Visual C++编程技术、从c++、面向对象到窗口设计》(位元文化 著)
前面部分没什么问题?
到了开始第一个窗口程序时?
发现:
编译通过。
连接失败,
具体请看。。。。。
原程序(来自书上)
#include <afxwin.h>
class MyApp:public CWinApp
{
public:
BOOL InitInstance ()
{
CFrameWnd *Frame=new CFrameWnd ();
m_pMainWnd=Frame;

Frame->Create (NULL,"Hello");
Frame->ShowWindow (SW_SHOW);

return true;
}
};

MyApp a_app;
(不排除空格原因哦,我自己也不知道。。。。
连接时,提示:
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/testWin32.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

testWin32.exe - 3 error(s), 0 warning(s)
这是什么原因啊????
...全文
181 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
CNer 2001-10-12
  • 打赏
  • 举报
回复
好好,大家都有理,我给分。。。。
oxec 2001-10-09
  • 打赏
  • 举报
回复
并不是书上错了,只是有些细节它没写清楚而已,呵呵
老熊宝宝 2001-10-09
  • 打赏
  • 举报
回复
to thundersound(白马轻裘->金刀烈酒):
我不认为这个问题和Multithreaded有直接关系,所以就算设了/MT或/MDd也解决不了问题。
老熊宝宝 2001-10-09
  • 打赏
  • 举报
回复
就用Win32 Application.
你的问题是出在你使用了MFC,但没有按MFC要求来设置编译和联接选项。
我再说一遍,只要在工程设置框的General选项卡中将MS Foundation classes设为Use MFC in a shared DLL就可以了。再试一试吧!因为这个问题我刚学VC遇到过,所以印象较深。
thundersound 2001-10-08
  • 打赏
  • 举报
回复
在vc中的project/setting的c/c++中的project options编辑栏设置multithreaded,添加/MT或/MDd参数,详情去查阅msdn吧!
abcdhy 2001-10-08
  • 打赏
  • 举报
回复
CNer:
我建议你先去买一本讲解 VC++ 入门的简单的书,先学习学习 VC++ 的界面和一些操作,不然你在学习中会遇到一些莫名其妙的问题。还找不到办法来解决,我最初学习的时候也是这个样子的。

对,就是 mfc appwizard
abcdhy 2001-10-08
  • 打赏
  • 举报
回复
CNer:
你的这个程序使用了MFC ,而 MFC 是使用了多线程的,必须要联结那些对多线程提供支持的 LIB 文件,(至于具体是哪些文件,你建立一个 MFC Application的工程 ,在项目设置里它会自动添加的)。

最简单的解决办法就是你自己建立一个 MFC Application的工程 ,然后把它的 除了 STDAFX.h 和 stdafx.cpp 之外的其他文件都删掉,最后把你的这个文件添加进项目中,一定没有问题的。
CNer 2001-10-08
  • 打赏
  • 举报
回复
对啊?
启动vc后。
按ctrl-n也就是新建啦。
里面不是有很多种吗?
我选的是:
win32 application
难道不对?
是mfc appwizard?
老熊宝宝 2001-10-08
  • 打赏
  • 举报
回复
只要,使用了afxwin.h头文件,就必须将工程设为使用MFC的Win32 Application.
对不起,我这儿现在没有VC,所以上面说的可能有点出入,不过意思肯定是正确的。
老熊宝宝 2001-10-08
  • 打赏
  • 举报
回复
说的不够清楚,其实是必须要有_AFXDLL,也就是说,你的工程必须是使用MFC的,在工程设置框
的General选项卡中将MS Foundation classes设为Use MFC in a shared DLL就可以了。就这么简单。
老熊宝宝 2001-10-08
  • 打赏
  • 举报
回复
你的工程文件是怎么建立的,书上说的没错,不过必须要建一个MFC Application的工程。
in your project setting, the preprocess definitions must as following:
WIN32,_WINDOWS,_MBCS,_AFXDLL.

CNer 2001-10-08
  • 打赏
  • 举报
回复
up。。。。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧