首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • [交流]Win32 DLL的一个调试心得 [已结帖,结帖人:clever101]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • clever101
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-06-21 23:44:30 楼主
    出处:http://blog.csdn.net/clever101/archive/2008/06/21/2574146.aspx


    在MFC工程(包括单文档、多文档、基于对话框、MFC DLL等)调试程序时可以使用trace宏来输出相关变量的值,在Win 32工程(包括Win32 Application和Win 32DLL)只能使用OutputDebugString函数来输出相关变量值。但是我觉得OutputDebugString比起trace宏有很大的不足,OutputDebugString不能像trace宏一样格式化输出,只能输出字符串,而且糟糕的是Win 32工程不能使用MFC的CString类构造格式化输出字符串。为此我上网搜了一些资料,找到了在Win32格式化输出的方法,具体就是构造一个类似C语言的printf函数DebugString。具体代码如下:

    #ifdef _DEBUG

    void WINAPI DebugString(LPCSTR format, ...)
    {
    va_list arglist;
    char buffer[10];
    va_start (arglist,format);
    vsprintf(buffer, format, arglist);
    va_end (arglist);
    strcat(buffer, "\t");
    OutputDebugString (buffer);
    }

    #endif

    代码说明:
    char buffer[10] 为格式化输出字符串的长度,应该根据你要输出的变量值合理设置,strcat(buffer, "\t"); // 调用该函数后在output窗口中输出字符串后跳到下一个tab位置,可以换为换行符。

    测试代码:

    #include <windows.h>
    #include <stdio.h>

    #ifdef _DEBUG
    void WINAPI DebugString(LPCSTR format, ...)
    {
    va_list arglist;
    char buffer[1024];
    va_start (arglist,format);
    vsprintf(buffer, format, arglist);
    va_end (arglist);
    strcat(buffer, "\n");
    OutputDebugString (buffer);
    }

    #endif

    int main(int argc, char* argv[])
    {
    int i;
    for (i=0; i <3; i++)
    DebugString("Hello: %d", i);
    return 0;
    }

    参考文献:
    《软件运行中输出数据到调试器》作者:乾坤一笑
    http://www.vckbase.com/bbs/prime/viewprime.asp?id=611
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gohan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 01:08:181楼 得分:0
    不错的法子~~~~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Mackz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

      6

      9

    发表于:2008-06-22 04:38:272楼 得分:15
    很好,不过可以修改一下使其更健壮,而这种方法也是编程时候应该注意的:
    C/C++ code
    // DebugString.h #ifdef _DEBUG #define MYTRACE(sz) DebugString(sz) #else #define MYTRACE(sz) #endif void WINAPI DebugString(LPCTSTR format, ...); // DebugString.cpp #pragma warning(disable:4996) const UINT DEBUG_BUFFER_SIZE = 1024; void WINAPI DebugString(LPCTSTR format, ...) { va_list arglist; TCHAR buffer[DEBUG_BUFFER_SIZE]; va_start(arglist, format); _vsntprintf(buffer, DEBUG_BUFFER_SIZE - 2, format, arglist); va_end(arglist); _tcsncat(buffer, _T("\n"), 1); OutputDebugString(buffer); } #pragma warning(pop)
    该回复于2008-06-22 04:42:52被版主修改
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Mackz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

      6

      9

    发表于:2008-06-22 04:40:043楼 得分:0
    调用的时候调用MYTRACE,这样防止Release编译的时候报错。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • alan001
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 09:02:274楼 得分:0
    学习一下

    UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gofqjyie
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 09:52:025楼 得分:0
    哈哈.给我一个接口,我可以接通整个世界@!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qyflying
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 09:56:226楼 得分:0
    支持,学习,不错的方法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • clever101
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 12:14:167楼 得分:0
    引用 2 楼 Mackz 的回复:
    很好,不过可以修改一下使其更健壮,而这种方法也是编程时候应该注意的:

    C/C++ code
    // DebugString.h
    #ifdef _DEBUG
    #define MYTRACE(sz) DebugString(sz)
    #else
    #define MYTRACE(sz)
    #endif

    void WINAPI DebugString(LPCTSTR format, ...);

    // DebugString.cpp

    #pragma warning(disable:4996)

    const UINT DEBUG_BUFFER_SIZE = 1024;

    void WINAPI DebugString(LPCTSTR format, ...)
    {
        va_lis…


          非常感谢大虾指教!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • vcleaner
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-06-22 16:24:228楼 得分:0
    DebugBreak and DebugBreakProcess
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dapeng112200
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 19:15:229楼 得分:0
    顶                      一                  下。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DarknessTM
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 19:16:5310楼 得分:0
    trace宏 也是封装啊

    复制过来改改不就可以用了

    CString 有 Format

    windows也有 wsprintf啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Strongwaywu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 20:29:4911楼 得分:0
    楼上的,为何要使用WINAPI?
    据说__stdcall不能处理可变参数啊,
    但是为何不会出错,谁指教一下?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • starwing83
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 21:37:4712楼 得分:0
    可以包含atlstr.h头文件,然后使用CString。
    这个类是独立于MFC的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • starwing83
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 21:39:1013楼 得分:0
    这上面写WINAPI是没有效果的,到头来还是__cdecl,因为只有C风格调用约定才支持不定参数。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DarknessTM
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 22:08:4414楼 得分:0
    引用 11 楼 Strongwaywu 的回复:
    楼上的,为何要使用WINAPI?
    据说__stdcall不能处理可变参数啊,
    但是为何不会出错,谁指教一下?


    用啥函数都一样的,你当然也可以选择 CRT的函数
    反正 wsprintf  是Win32提供的格式化函数,就如同win32提供的 lsrtxxx 系列
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jameshooo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-06-22 22:15:4415楼 得分:0
    支持心得交流
    (哎,这也嫌短)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • clever101
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 22:42:0016楼 得分:0
    引用 10 楼 DarknessTM 的回复:
    trace宏 也是封装啊

    复制过来改改不就可以用了

    CString 有 Format

    windows也有 wsprintf啊


          TRACE使用的是AfxTrace对象,这个对象只有在支持MFC的程序才有,不知你怎么复制过来修改?盼指教。
    wsprintf是支持格式化输出字符串,但我的方法一是支持格式化字符串,二是支持在output窗口输出。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DarknessTM
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-22 22:46:5817楼 得分:0
    TRACE在层层封装后 其实也是要用 OutputDebugString  的

    OutputDebugString 输出的文本 就会出现在output中
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinghao666666
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-23 08:26:2618楼 得分:0
    引用 15 楼 jameshooo 的回复:
    支持心得交流
    (哎,这也嫌短)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Strongwaywu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-23 08:47:5019楼 得分:0
    __stdcall(WINAPI)是函数调用规范,由被调用方清理堆栈,被调用方不知道有多少个参数,是没法正确清理的。
    wsprintf是声明成__cdecl,没有问题的。
    目前为止,我还没见过声明为WINAPI,但支持可变参数的;能否举个具体的例子?
    参考资料:http://blog.bcchinese.net/happyjet/archive/2005/05/24/22545.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dyjava01
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-23 09:35:1720楼 得分:0
    不错,不错,不错,不错,不错,不错,学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kronhugo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-23 17:13:2521楼 得分:0
    学习一下,正在学dll
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • red_berries
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-23 19:22:3822楼 得分:0
    引用 11 楼 Strongwaywu 的回复:
    楼上的,为何要使用WINAPI?
    据说__stdcall不能处理可变参数啊,
    但是为何不会出错,谁指教一下?

    同问
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Strongwaywu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 00:37:3823楼 得分:0
    引用 13 楼 starwing83 的回复:
    这上面写WINAPI是没有效果的,到头来还是__cdecl,因为只有C风格调用约定才支持不定参数。

    也就是说编译器会偷偷的把它换成__cdecl?我在vs71下编译,没有任何警告。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Strongwaywu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 00:40:3524楼 得分:0
    话说,偶一直用ATLTRACE
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • upgrade_007
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 07:05:3425楼 得分:0
    学习中
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • rczjp
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 09:31:1926楼 得分:0
    MARK........
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wewaa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 13:13:5427楼 得分:0
    引用 26 楼 rczjp 的回复:
    MARK........
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • oilinsea
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 14:44:2628楼 得分:0
    makr
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jiqing_gao
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 14:58:0629楼 得分:0
    收藏~~~~~~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dawdler_00_
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 15:53:1030楼 得分:0
    不懂应该还好....收藏
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ChellyWu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-24 16:59:0331楼 得分:0
    引用 5 楼 gofqjyie 的回复:
    哈哈.给我一个接口,我可以接通整个世界@!

    哈哈 找到一个接口,我可以玩转整个世界:)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qinpower
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-25 09:41:2132楼 得分:0
    JAVA培训(先就业,后还款)
    北京秦鼎科技,java高端技术培训,可贷款,先就业后还款,小班授课(10-15人),月薪达不到3000以上不用还贷款,优秀的师资严格的管理。学员毕业可获得国家劳动部门颁发的职业培训证书以及信息产业部颁发的JAVA软件工程师证书。真人免费试听,有意者请联系。
    地址:北京市海淀区紫竹院路曙光花园智业园A座8C
    电话:010-88465543/88465635  联系人:汪老师
    QQ:545951266  验证信息:java培训
    网址:www.qinpower.com
    E-mail:qinpower2006@163.com
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Nowish
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-25 10:40:4833楼 得分:0
    shit!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • GetError
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-25 17:34:0034楼 得分:0
    不咋看得懂~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qinpower
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-26 09:31:2135楼 得分:0
    JAVA预备软件工程师6+6模式招生
    预备软件工程师主要适合的对象:
    1.对JAVA开发有浓厚兴趣;
    2.期望以技术实力立足于北京并在北京获得长期发展的有志人员;
    3.感觉其它培训单位培训的技能太浅太杂,希望专注于JAVA技术者;
    4.有意向JAVA培训,但苦于无太多资金者。
    实训6+6模式的说明:
    1、6+6模式的周期共12个月,前6个月为实训期,后6个月为工作还款期。
    2、学员实训结束后,合格学员到本公司研发中心工作,或到定向用人软件公司就业,劳动报酬通常为3000元/月。对于申请助学贷款的学员,每月从工资中扣除1000元,用于归还所借助学贷款。入学即签就业保障协议;学员就业后如果月薪达不到3000元,可以免除还款。考试合格学员可以拿到国家劳动部门颁发的职业培训证书以及信息产业部颁发的JAVA软件工程师证书。
    预备软件工程师实训目标:
    1.精通Unix/Windows平台的,以J2EE的EJB及开源框架Struts、Spring、 Hibernate为核心的企业级信息系统开发;
    2.精通基于JBuilder、Eclipse等开发工具的Servlet、JSP、JDBC、XML的多层架构编程;
    3.精通Oracle、SQLServer、MySQL三大数据库应用开发;
    4.熟练掌握面向对象分析、设计、UML工具以及数据结构和常见模式;
    5.迅速积累1-2年基于JAVA高端技术的研发经验。
    技术凝聚实力,实力辉煌人生!从预备软件工程师到JAVA研发专家,秦鼎科技为你规划了一条清晰而又快捷的职业发展轨迹,只要你有决心有毅力,百折不挠,勤奋钻研,灿烂的光明就在明天。
    我们是小班授课,一个班只招12人,名额有限,欢迎垂询。
    地址:北京市海淀区紫竹院路曙光花园置业园A座8C
    乘车路线:347路、804路、425路到板井路下。运通202。33路、632路到正福寺下。
    电话:010-88465543/88465635    联系人:汪老师
    QQ:545951266      验证信息:java培训
    网址: www.qinpower.com
    E-mail: qinpower2006@163.com
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • spark_li
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-26 22:35:3236楼 得分:0
    bucuo bucuo bucuo bucuo bucuo
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • erac
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-27 09:32:5037楼 得分:0
    学习哈。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raoyou
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-27 11:05:2038楼 得分:0
    #ifdef _DEBUG
    #define MYTRACE(sz) DebugString(sz)
    #else
    #define MYTRACE(sz)
    #endif

    ?????????
    宏支持可变参数??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Strongwaywu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-27 12:37:3839楼 得分:0
    引用 38 楼 raoyou 的回复:
    #ifdef _DEBUG
    #define MYTRACE(sz) DebugString(sz)
    #else
    #define MYTRACE(sz)
    #endif

    ?????????
    宏支持可变参数??


    不支持, 另外_DEBUG定义也不是通用的,有DEBUG,NDEGUG等很多种。
    可以这样
    C/C++ code
    #if defined(DEBUG) #define MYTRACE DebugString #else #define MYTRACE __noop; #endif


    使用__noop而非;可以避免对参数求值。
    这个宏有个缺陷就是无法输出当前文件名和行号,
    要实现这种功能的话,可以使用函数对象。

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Strongwaywu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-27 12:40:4940楼 得分:5
    [Quote=引用 39 楼 Strongwaywu 的回复:]
    引用 38 楼 raoyou 的回复:
    #ifdef _DEBUG
    #define MYTRACE(sz) DebugString(sz)
    #else
    #define MYTRACE(sz)
    #endif

    ?????????
    宏支持可变参数??


    不支持, 另外_DEBUG定义也不是通用的,有DEBUG,NDEGUG等很多种。
    可以这样
    C/C++ code
    #if defined(DEBUG) #define MYTRACE DebugString #else #define MYTRACE __noop #endif

    使用__noop而非;可以避免对参数求值。
    这个宏有个缺陷就是无法输出当前文件名和行号,
    要…
    [/Quote]

    C/C++ code
    #define MYTRACE __noop
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • pigzhutuo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-27 14:41:0041楼 得分:0
    支持,学习,不错的方法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tonggulu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-27 17:03:0642楼 得分:0
    ***************************************************************************

    思想决定行动,行动决定习惯,习惯决定命运.
    程序员在深圳QQ群,交流产生思想碰撞.

    部份专业群:
    程序员在深圳c++群15195967
    程序员在深圳英语学习群:23864353
    程序员在深圳c++Ⅱ17409451
    程序员在深圳嵌入式开发群37489763
    程序员在深圳移动开发群31501597
    程序员在深圳创业群33653422

    部份高级程序员群:
    高级群I:17538442
    高级群II:7120862

    部份初、中级程序员群:
    第三群:2650485
    第五群:29537639
    第四群:28702746
    第六群:10590618
    第七群:10543585
    第八群:12006492
    第九群:19063074
    第十群:2883885
    第十一群:25460595
    第十二群:9663807

    深圳程序员QQ群联盟成立三年多,拥有三十个以上的QQ群,人数超二千多人,大量经验丰富的老手,成员从业于大公司(如微软、IBM,SUN,华为)、来自国内著名高校和研究院成员,和有丰富实践经验的高级程序员、系统分析员(包括参加过上亿元的项目的架构师),有很热爱技术的成员(包括自己写操作系统),还有少数女程序员。推荐:深程高级群I:17538442 深程高级群II:7120862 (深程高级群不欢迎新手,如果在深圳,月薪6K以下的别加入) c++:15195967  mobile:31501597嵌入式:37489763 
    ——————————————————————————————————————————
    如果你不是第一次看到此广告,说明我们最近T了一些人,因为我们要不断提升群的质量,保证名副其实.
    -------------------------------------------------------------------------------------
    在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到:
          1. 通读手册,试着自己找答案。
          2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。
          3. 在网上搜索(个人推荐google~)。
          4. 向你身边精于此道的朋友打听。
    我想我们首先应该靠自己解决问题,然后才是问!

    *****************************************************************************
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zswolf2000
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-06-28 00:19:3243楼 得分:0
    我有一个好办法,哈哈

    #ifdef _DEBUG
    void WINAPI DebugString(LPCTSTR format, ...);
    #define MYTRACE(_x) DebugString _x
    #else
    #define MYTRACE(_x)
    #endif

    用的时候MYTRACE(("number:%d\n",100));
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wangwei8888
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-01 00:08:4044楼 得分:0
    mark!学习了~~~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sanshao27
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-01 08:55:3145楼 得分:0
    不错的方法,学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • poleyu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 17:05:4146楼 得分:0
    xue xi...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • animalgogogo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 17:09:3047楼 得分:0
    顶起
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Super_Y
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-02 23:34:3448楼 得分:0
    不错
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lfchen
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-07-02 23:58:0749楼 得分:0
    mark
    收藏
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yc_8301
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-03 13:24:1550楼 得分:0
    引用 41 楼 pigzhutuo 的回复:
    支持,学习,不错的方法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • www8vbcn
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-07-15 11:16:3251楼 得分:0
    很简短。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ssk148150105
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-06 12:47:5552楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hongjibjb
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2009-06-11 14:34:3953楼 得分:0
    值得收藏!!!!!!!!!
    修改 删除 举报 引用 回复