不使用向导编写简单的MFC程序

近来学习MFC框架,参照的书籍是:MFC windows程序设计,有些年头的书了。

之前把这本书浏览式的看了一遍,然后第二遍跟着书中的实例,敲点代码。

这不,第一个MFC程序,没有使用向导生成。


Hello.h

//2012-11-26 raoqh

//声明一个类继承CWinApp
class CMyApp:public CWinApp
{
public:
    virtual BOOL InitInstance();//重写初始化函数
};

//声明主窗口继承自CFrameWnd
class CMainWindow:public CFrameWnd
{
public:
    CMainWindow();
protected:
    afx_msg void OnPaint();//消息处理函数,重画
    DECLARE_MESSAGE_MAP()//声明消息队列
};


Hello.cpp

CMainWindow::CMainWindow()
{
    Create(NULL,_T("The Hello Application"));
}

//消息处理函数
void CMainWindow::OnPaint()
{
    CPaintDC dc(this);
    CRect rect;
    GetClientRect(&rect);
    dc.DrawText(_T("Hello,MFC"),-1,&rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}


*****************************************************************************

然而这个简单的程序出现了两个问题。

/*
    :fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
    :出现该错误是告诉我们当前程序需要连接库的,或者叫做外接库。而当前程序是不需要的,因此报错。
    :解决办法是项目->属性->配置属性->常规->MFC的使用,改为“在共享 DLL 中使用 MFC”
*/

/*
    :“fatal error LNK1561: 必须定义入口点”解决方法
    :出现该错误解决办法是:项目->属性->连接器->高级->入口点,加上WinMainCRTStartup
    :出错的原因是程序没有找到入口点,而MFC中入口点被封装成其他函数,比如上面的WinMainCRTStartup 或者 wWinMainCRTStartup
        这两个函数式不同的字符编码平台下所不同的。
        当使用的是Unicode编码方式时,程序入口点是wWinMainCRTStartup。
        当使用的是多字节编码方式时,程序的入口点是WinMainCRTStartup。
        主要还是因为我们没有使用向导生成MFC程序,所以有些配置我们还不了解。
*/














  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值