windows win32桌面应用开发打印输出类似 printf()函数功能的实现方法

发现在windows win32桌面应用程序开发中,想调试输出信息,打印信息,在linux平台,windows控制台应用下能用的printf()函数输出不了,只能用OutputDebugString(),但这个函数只能输入固定的字符串,不能格式化输出,多少很不方便, 下面是我对于printf()在win32桌面开发中的个人实现方法: 定义一个宏 PRINTF

#include "framework.h"

#define  PRINTF(f, ...) do{WCHAR wmsg[1024]={0};    \
wsprintf(wmsg, (f), ##__VA_ARGS__);OutputDebugString(wmsg);}while(0)

测试:

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)

{

        const WCHAR *p = _T("你好");

        int count = 1;

        PRINTF(_T("%s,这是我的第%d篇博客!\n"), p, count);

        return 0;

}
输出:你好,这是我的第1篇博客!

因为wsprintf() 和 OutputDebugString() 要求输入的字符串都是宽字符串即WCHAR, unicode 16位的字符串,所以PRINTF() 格式化输入的字符串也必须是宽字符串。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值