在dll的调试状态,实现类似MFC中的TRACE的函数
以前好像看到过忘记了,还望指点
以前好像看到过忘记了,还望指点
解决方案 »
- 多次缩放后hBitmap2Ipl出错
- 怎样设置EXE图标?
- vc连接mssql,在服务器本身能连上,但是到其他电脑上就连不上!为啥啊!??急急急!!
- 想问一个数据库并发处理的问题
- 高手请进,怎么截取ALT组合键 ?
- 高分求找做安装界面的图片。
- 谁会在ComboBox控件里面回车,到第二个Combobox,在回车,又到第三个combobox,combobox可以编辑可以下拉选择的
- 能否用一个函数产生一个消息。
- 属性表CPropertySheet充满CFormView窗口后,怎么让CPropertyPage充满CPropertySheet
- 关于MFC动态链接库
- 如何去掉窗口的边框,把程序中某个颜色透明
- GetModuleFileName是如何实现的?
不过最好用宏定义自己包装下,不然release版本中也会产生这些调用
在MFCDLL中也可以用TRACE()。
OutputDebugString可以在发行版中起作用,这样的性质是非常有用的,因为有时程序会因为外部的配置而产生一些错误,可以用OutputDebugString输出到外部。
再就是自定义日志文件,将所有调试信息写到外部磁盘上。
1、Win32 DLL里也可以用CRT的断言:_ASSERT,ASSERTE,assert(这个小写的在Release里也起作用)
2、如果要输出自定义信息可以用 _RPTn, _RPTFn 宏,类似MFC的TRACEn,还有_CrtDbgReport,用法很灵活
3、如果喜欢消息框,而且是用在对用户输入或操作不当的提示中,也不妨:
#ifdef _DEBUG
::MessageBox(::GetFocus(),...);
#endif
或者干脆
#ifdef _DEBUG
#define MyDebugCode(abc) abc
#else
#define MyDebugCode(abc)
#endif
这样就可以用MyDebugCode()来写只存在于Debug版本里的代码