MFC入门学习第一章

刚学MFC的时候从网上找到一个教程的例了代码,如下:

class sample:public CFrameWnd

{

public:

     sample()

     {

         Create(NULL,"MFC Window");

         MessageBox("My MFC Windows","CFrameconstructor",MB_OK);

     }

};

class App:public CWinApp

{

public:

     BOOL InitInstance();

     BOOL ExitInstance();

};

 

BOOL App::InitInstance()

{

     MessageBox(0,"My MFCWindows","InitInstance",MB_OK|MB_ICONASTERISK);

     sample *obj;

     obj= new sample;

     m_pMainWnd=obj;

     obj->ShowWindow(SW_SHOWMAXIMIZED);

     return true;

};

 

BOOL App::ExitInstance()

{

     MessageBox(0,"My Window","ExitInitInstance",MB_OK|MB_ICONHAND);

     return true;

}

App a;

按说明在VS2008下新建 c++win32 application 在源文件下贴入上面的代码,编译,发现大堆错误;教程里没说有错误,只说没有引用MFC类库编译会有其它问题, 所以就怀疑是不是开发及编译环境的问题(因为不懂啊,乱猜测,原来跟这没啥关系),所以就下载了个vc6.0的环境重新建了工程,输入代码,发现问题依旧;几经折腾,发现原来是没有引用相关头文件,#include"afxwin.h" 加上后vc6.0下顺利编译,运行; 但ms2008下的加上头文件后还是不行,但错误提示是不能转换char[n] 到LPCSSTR;原来要用reinterpret_cast<LPCTSTR>("My Window") 作一次转换。问题又出来了,在VS2008下用转换后的代码运行发现那些字符显示都乱码了;

 

解决办法如下:

可以把工程设为多字符集选中解决方案管理器中的项目,右键->属性->配置属性->常规,在右面字符集一栏单击一下字符集编辑输入区域,在下拉框中选择“使用多字节字符集”即可

 

也可以直接定义这样LPCTSTR  lps = "MyMFC Window";

 

 

 

另附一些小窍门

 

1)

有时候,你可能在编译的时候,计算机突然非法关机了(可能某人不小心碰了电源或你的内存不稳定等原因)。当你重启机器后打开刚才的项目,重新进行编译,发现VC会崩掉。你或许以为你的VC编译器坏了,其实不然(你试试编译其它项目,还是好的!),你只要将项目的.ncb、.opt、.aps、.clw文件以及Debug、Release目录下的所有文件都删掉,然后重新编译就行了。

 

2)

如果你想与别人共享你的源代码项目,但是把整个项目做拷贝又太大。你完全可以删掉以下文件:.dsw、.ncb、.opt、.aps、.clw、. plg文件以及Debug、Release目录下的所有文件。

 

3)

当你的Workspace中包含多个Project的时候,你可能不能直观地、一眼看出来哪个是当前项目。可以如下设置:Tools->Options->Format,然后在Category中选择Workspacewindow

,改变其默认的字体(比如设成Fixedsys)就行了。

 

4)

如何给已有的Project改名字?将该Project关掉。然后以文本格式打开.dsp文件,替换原来的Project名字即可。

 

5) VC6对类成员的智能提示功能很有用,但有时候会失灵。你可以先关掉项目,将.clw和.ncb

删掉,然后重新打开项目,点击菜单项View->ClassWizard,在弹出的对话框中按一下“Add All”按钮;重新Rebuild All。应该可以解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值