游戏制作已经开始采用C++了,却鲜有人选择使用MFC.但笔者觉得的 ASSERT(),VERIFY()和 TRACE()这几个宏很好用.所以就想自己写一个版本来适应Windows平台下不同的工程类型. 提醒: ASSERT()被测试它的参数,若参数为0,则中断执行并打印一段说明消息.在 Release 版本的程序中它不起任何作用. VERIFY()和 ASSERT()很相似,区别在于在 Release 版本中它仍然有效(译者注:原作者在这里没有讲清楚,VERIFY()不会打印说明,只是会对参数表…
其实这篇文章说的很明白了:http://dev.gameres.com/Program/Other/DebugMacro.htm 结论如下: 1.ASSERT()测试它的参数,若参数为0,则中断执行并打印一段说明消息:非0什么事儿都不做.在 Release 版本的程序中它不起任何作用.    2.VERIFY()和 ASSERT()很相似,区别在于在 Release 版本中它仍然有效,但只计算参数值,不输出诊断信息.    ASSERT()使用的时候必须保证参数表达式中不能有函数调用(译者注:A…
CString在当今软件设计界里还是小有名气的,说它是MFC中使用的最多的类一点也不过,然而在使用sdk编windows程序的时候,确不能利用CString类,只能用sdk的运行时库,比如strlen,strcpy,strstr等等,本文讨论的是在非mfc程序中使用CString类的方法,算是个引子,如果有更好的实现方法,欢迎大家讨论. 为了使用CString类,首先源文件必须是以cpp结尾的,这是因为vc默认对不同的扩展名采用不同的编译方法和错误检查,mfc的支持文件Afx.h只有由cpp为扩…
目录(?)[-] 需求说明 常见问题 问题分析 参考解决方法 我的解决方案 Stdafxh的原理   需求说明 C++工程的类型有很多,从VS(或VC)可以看到常见的有:Win32 Console Application.MFC Application.Win32 Project等.在创建MFC工程时,通过IDE的向导会自动帮我们创建相应的类文件和包含必需的头文件,但有时候我们需要在非MFC工程中包含MFC的库.至于为什么会有这个需要,为何不在一开始就创建MFC工程呢?可能有两种原因:1.在MF…
MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,                    然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.…
方法1:亲测 成功  转载自https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/48338f6b-e5d9-4c0c-8b17-05ca3ef1f761/vs2010dialog 你可以创建菜单作为一种资源,然后将它附加到对话框.打开dialog“属性”对话框,你可以看到一个Menu属性,最终我们将在这里指定一个我们自己创建的菜单ID. 具体步骤如下: •在资源视图中右键单击工程名,插入一个新的菜单.这个菜单会有一个ID(例如:IDR_M…
记得原来尝试学MFC的时候觉得有一个TRACE可以在Debug时向VS的调试输出窗口输出字串符,用来调试时跟踪变量很方便. 然则如果不是MFC项目或者ATL的项目的话是不能使用这个宏的.这时有一个没有什么额外消耗的办法能够做到向调试输出窗口输出. 在项目中额外包含windows.h这个头文件,再使用OutputDebugString()这个函数就能够起到与TRACE()宏相同的效果.在进行一点包装就能和c中的printf一样接受不定项参数. 下面程序做为范例. #include <iostrea…
在编写复杂程序的过程中,我们经常需要将一些信息输出到文件或者屏幕上.较控制台应用程序,MFC窗体程序要显得麻烦一些! 下面有2种方法来实现为MFC窗体程序添加调试控制台,方便程序员调试程序和了解当前程序的运行状态. 重要Windows API:AllocConsole();   //创建Console窗口 FreeConsole();     //销毁Console窗口 (1)启动控制台窗口 需要包含的头文件 #include <io.h> #include <cstdio> #i…
AnyCAD图形控件有.Net版本和C++两个版本,使用C++要比C#稍微繁杂一点.SDK中提供了针对MFC的文档视图的封装,只需改一下几个基类即可. 准备 VS2010 下载C++版本的AnyCAD图形控件:http://pan.baidu.com/s/1c06hmPa 项目设置 $(AnyCADSDK)替换为您的工程相对于AnyCAD C++ SDK的位置,您也可以把AnyCADSDK加到环境变量中. 头文件 $(AnyCADSDK)\inc Lib查找目录 $(AnyCADSDK)\lib…
现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界面美化,三是不利于人员分工,开发人员既要忙实现功能,又要忙准备好的界面素材.对界面实现文件配置化正是解决上面问题的好方法.这次我实现了使用XML文件配置工具栏.这里所谓配置就是工具栏的界面信息如工具栏标题.按钮图片.是否为分隔符都在XML文件保存,程序通过解析XML文件来获取工具栏信息来创建工具栏.…