Format(LPCTSTR pFormat,... )函数参数传递的问题 vsprintf? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是这样的:static void PrintMessage( const char *Format, ... ){ va_list ArgList; char Buffer[256]; va_start(ArgList, Format); vsprintf(Buffer, Format, ArgList); va_end(ArgList); MESSAGEBOX(GetFocus(), Buffer, "Error", MB_OK);} #define DBGPRINT(lpszFmt, ...) \ TCHAR szText[1024] = {0}; \ StringCchPrintf(szText, _countof(szText), lpszFmt, __VA_ARGS__); \ OutputDebugString(szText); 逻辑应该不正确,va_start获取了参数地址到ArgList,然后将该值传人Xprintf,Xprintf解析输出的应该是ArgList的值(即函数PrintMessage参数表的地址) __VA_ARGS__这个是什么呢? “逻辑应该不正确”?这是 MSDN 中 的 例子, 我 没 测过 。 应该 不会 “逻辑不正确”吧 根据两位的提示,搞定LPCTSTR Format(LPCTSTR pFormat,... ){ va_list ArgList; LPTSTR Buffer=new TCHAR[1024]; va_start(ArgList, pFormat);#ifdef _UNICODE vswprintf(Buffer, pFormat, ArgList);#else vsprintf(Buffer, pFormat, ArgList);#endif va_end(ArgList); return Buffer;} 重新研究了一下函数原型,你是对的,我还以为vprintf还是使用变参数,我理解错了 关于多文档中窗口切割的问题 为什么 虚函数和mfc框架臃肿有联系呢? MFC中使用外部软件打开图片,然后显示在图片控件中,怎么做?在线等谢谢 求助:GetWindowText的问题 zprintf(LPSTR , ...)参数改怎么传 求修改DNS SERVER ip的api,谢谢 怎样才能把签字笔写的字去掉,而看不出来? 急,向高手求救:编译时,未出问题,Build时出问题了,请看下面的问题出在什么地方? 关于保存位图的问题。。。急 请问如何将.ra 或.rm格式转换成.mp3格式 多编辑框输入焦点切换问题 vc6.0通过ADO访问Oracle11g连接字符串中Provider怎么写
static void PrintMessage( const char *Format, ... )
{
va_list ArgList;
char Buffer[256];
va_start(ArgList, Format);
vsprintf(Buffer, Format, ArgList);
va_end(ArgList);
MESSAGEBOX(GetFocus(), Buffer, "Error", MB_OK);
}
TCHAR szText[1024] = {0}; \
StringCchPrintf(szText, _countof(szText), lpszFmt, __VA_ARGS__); \
OutputDebugString(szText);
逻辑应该不正确,va_start获取了参数地址到ArgList,然后将该值传人Xprintf,Xprintf解析输出的应该是ArgList的值(即函数PrintMessage参数表的地址)
__VA_ARGS__这个是什么呢?
这是 MSDN 中 的 例子, 我 没 测过 。 应该 不会 “逻辑不正确”吧
根据两位的提示,搞定LPCTSTR Format(LPCTSTR pFormat,... )
{
va_list ArgList;
LPTSTR Buffer=new TCHAR[1024]; va_start(ArgList, pFormat);#ifdef _UNICODE
vswprintf(Buffer, pFormat, ArgList);
#else
vsprintf(Buffer, pFormat, ArgList);
#endif
va_end(ArgList);
return Buffer;
}