求助:再向各位大哥请教两个问题,谢谢!

NJSNJS 2005-11-16 02:19:47
请教:

问题1:

我新建了一个 Win32 Application 工程 test16
并且创建一个 名为: Application 的 .cpp 文件。

然后在 Application.cpp 中输入:
#include "afxwin.h"

class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();

};

class CMainFrame : public CFrameWnd
{
CMyApp myApp;
};


BOOL CMyApp::InitInstance()
{
m_pMainWnd=new CMainFrame;
((CMainFrame*)m_pMainWnd)->Create(NULL,"the mfc application");
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}

我 Build 时提示这样的错误:
eleting intermediate files and output files for project 'test16 - Win32 Debug'.
--------------------Configuration: test16 - Win32 Debug--------------------
Compiling...
Application.cpp
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/test16.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

test16.exe - 3 error(s), 0 warning(s)


各位大哥,我是错误在哪里呢?
是不是还有什么头文件没有添加上来呢?


还有一个是:我照着书上的一个例子来的。
我还有 第四步:田加 MFC 没有做。

是不是因为我没有添加 MFC 支持,才出现上面的错误呢?


问题2:
我打开 classwizard
可是在 class name 下面找不到 CMenuView 类
各位大哥,这是什么原因啊?

谢谢!
...全文
118 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
NJSNJS 2005-11-17
  • 打赏
  • 举报
回复
herojx 大哥:
您真是太热心了!

您说:“每个菜单项都有一个ID,我看你的这个工程的菜单是加载在CMainFrm主框架类中的”

herojx 大哥,假设我要使我的这个工程菜单加载到CMenuView类中,那要怎么操作呢/

谢谢!
herojx 2005-11-17
  • 打赏
  • 举报
回复
StdAfx.h文件里包含了MFC类库的头文件
其它你自已定义的.h文件,如果在程序中用到了,就包含在用到的.cpp文件中

我新建了一个菜单,我想给这个菜单提供 WM_COMMMAND 消息处理程序
我打开 classwizard
可是在 class name 下面找不到 CMenuView 类

每个菜单项都有一个ID,我看你的这个工程的菜单是加载在CMainFrm主框架类中的
你应该在ClassWizard中选中CMainFrm类,再在左边的列表框里选中菜单ID,右边框选消息事件

学VC,应该从基础慢慢学起,不要急,多看入门籍.
NJSNJS 2005-11-17
  • 打赏
  • 举报
回复
请各位大哥再帮我鼎鼎!
谢谢!
NJSNJS 2005-11-16
  • 打赏
  • 举报
回复
herojx 大哥:
是这样的,
我新建了一个菜单,我想给这个菜单提供 WM_COMMMAND 消息处理程序
我打开 classwizard
可是在 class name 下面找不到 CMenuView 类

这是什么原因呢?

还有:
MainFrm.cpp
StdAfx.cpp
Test1.cpp
Test1Doc.cpp
Test1View.cpp

这几个都是 .CPP 文件,
我应该看哪个文件下的 #include

iamknight 大哥说的:
要是你的类对应的头文件包含在工程中,而classview 里看不到,可以把.ncb 文件和.clw重新生成一下就好了。


我不是很明白?还有 没有看到 ncb 文件和.clw 文件啊?

谢谢大哥!
herojx 2005-11-16
  • 打赏
  • 举报
回复
问题2:
只要在cpp文件中用#include 头文件名就可以了

对于VC自带的库文件,可以在你的VC安装目录里的Include目录里找到,MFC库文件在MFC\include目录里
如果是你自已写的头文件,在工程的目录里可以找到
NJSNJS 2005-11-16
  • 打赏
  • 举报
回复
请各位大哥再帮我鼎鼎啊!
谢谢!
NJSNJS 2005-11-16
  • 打赏
  • 举报
回复
herojx 大哥 和 iamknight 大哥:
小弟感谢了~~

还请大哥帮我看看 问题2
谢谢!
herojx 2005-11-16
  • 打赏
  • 举报
回复
#include "afxwin.h"

class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();

};

class CMainFrame : public CFrameWnd
{
//CMyApp myApp;这句不要放在这里,每个工程只能有一个WinApp对像,应放在涵数体外面
};


BOOL CMyApp::InitInstance()
{
m_pMainWnd=new CMainFrame;
((CMainFrame*)m_pMainWnd)->Create(NULL,"the mfc application");
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}
CMyApp myApp;//帮你改到这里来了

然后再在VC的菜单上选Project->Setting会弹出一个设置菜单
选中General页
选Microsoft Foundation Classes下拉框
除了Not Useing MFC,其它两项随便选一个


NJSNJS 2005-11-16
  • 打赏
  • 举报
回复
iamknight 大哥:
您好!
还的继续向您请教:

问题1:
对于问题1 您说正解,
是因为我没有添加 MFC 支持,才出现上面的错误呢?
还是少了头文件?

问题2:
我怎么知道我的类的头文件是否包含在工程里呢?
是在哪个文件夹下看的啊?

还有,我在 workspace 里没有发现 .ncb 文件和.clw 文件啊?
iamknight 大哥,.ncb 文件和.clw 文件啊?
是在哪里啊?

谢谢!

iamknight 2005-11-16
  • 打赏
  • 举报
回复
1、正解
2、要是你的类对应的头文件包含在工程中,而classview 里看不到,可以把.ncb 文件和.clw重新生成一下就好了。

16,551

社区成员

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

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

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