受优快云认证专家yzsind一篇旧文《再次写给我们这些浮躁的程序员》(http://blog.youkuaiyun.com/yzsind/article/details/6168854的)的教诲,决定以后不管学习程度如何,争取每周写一篇博客,当作是梳理最近一周的学习情况,分享最近一周产生的一些新的想法。
1、添加MSDN提供的SampleApplication后,在链接时可能报错如下:
LINK : fatal error LNK1104: cannot open file"uafxcw.lib"
解决办法:
选择菜单栏的Build-Configuration,移除列表中的Win32 Debug Unicode和Win32 Release Debug.
2、关于在VC++ 6.0上用MFC开发一个应用程序,在自己电脑上没问题,在别人电脑却运行失败,报错为:
弹出一个对话框,提醒缺失mfc42.dll或缺失mfc42d.dll文件。
解决办法:
在Win32 Release(而不是Win32 Debug) 下编译-链接-运行,最后把release文件下生成的.exe可执行文件拷给别人。
3、关于其他类型的数据以字符串形式输出
解决办法:
可以用sprintf函数解决。
该函数原型为:int sprintf( char *buffer,const char *format [, argument] ... );这个函数还可以控制输出宽度及输出精度。详细请参考:
http://blog.youkuaiyun.com/yming0221/article/details/6861008
4、关于使用Comobo Box 控件添加data后,运行程序后点击下拉菜单却未显示出所添加数据
解决办法:这是因为默认的下拉菜单显示区域过于狭小,在资源视图中将添加的Comobo Box下拉以扩大区域显示区域即可解决。
5、程序编译链接都没问题,但是运行时立即报错或者进行某操作时报错,报错诸如:
DebugAssertion Failed
Program:...\GoogolTechMES\Debug\GT_AMMS.exe
File:afxwin2.inl
Line:735
或者类似
File:afxwin2.inl
Line:713
解决办法:
类似这样的问题,可能是添加与控件(如comobo box)相关的数据成员时后来作了修改,以致DDX少了一行,
可类似这样解决,添加:DDX_Control(pDX, IDC_COURSETYPELIST, m_courseType);
6、点击一个Button后用默认浏览器打开一个URL
解决办法:
使用ShellExecute函数,例如ShellExecute(NULL, "open","http://weibo.com/jefferson327", NULL, NULL, SW_SHOWMAXIMIZED);
7、设置静态文本的颜色
解决办法:
首先定义一个CFont指针,并new一个CFont对象给它,接着调用CreateFont函数设置字体类型,
最后用GetDlgItem获取控件指向CWnd的指针,最后调用SetFont(CFont*)
8、VC++中新建的win32 Console Application中,如果调用了CTime、CString等封装在MFC中的类,必须包含头文件Afxwin.h,运行程序依然报错:
解决办法:修改project----settings的设置,可改为Use MFC In aShared DLL,
如果程序中需要用cout输出CString对象,则需要将CSting对象转化为LCTSTR。
9、使用Combo Box时,依次添加data一回车发现将刚打开的属性窗口关闭了
解决办法:在这里添加data应当是以Ctrl+回车换行,而不是简单地回车
10、在资源视图中添加某控件的消息响应函数和相关数据成员
解决办法:较快的方法——直接双击添加控件的消息响应函数或者跳转到已添加的消息响应函数,按住ctrl再双击添加与控件相关的数据成员