vs2008中宽字符和窄字符的转化有关问题
vs2008中宽字符和窄字符的转化问题
在vs2008中,想在监视器中打印一个参数的数值,用到了OutputDebugString()函数,但是OutputDebugString()函数里的参数是wchar类型的字符串,知道将wchar转化成char的是TEXT()函数,现在有一个int型的参数,想将它输出到监视器上,该如何做?
nuUINT CNLCMyButtonDlg::NrOnLButtonUp(nuUINT nID)
{
if(_ID_TITLE_MY_ == nID)
{
OutputDebugString(TEXT(“”));
}
}
------解决思路----------------------
先把int转成字符串,比如用CString 的Format来格式化字符串
------解决思路----------------------
如楼上所说,使用字符串的格式化语句Format完成即可
------解决思路----------------------
afxDump << nID << "\n";
------解决思路----------------------
谁说OutputDebugString()函数里的参数是wchar类型的字符串(你又不是写死用的OutputDebugStringW函数)?? Unicode字符集下的确是wchar_t,而多字符集下就是char !!
既然你是Unicode字符集,最基础的:
------解决思路----------------------
作为一个C程序员,对
scanf,sscanf,fscanf
printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。
------解决思路----------------------
stdafx.h中:
#include <tchar.h>
在vs2008中,想在监视器中打印一个参数的数值,用到了OutputDebugString()函数,但是OutputDebugString()函数里的参数是wchar类型的字符串,知道将wchar转化成char的是TEXT()函数,现在有一个int型的参数,想将它输出到监视器上,该如何做?
nuUINT CNLCMyButtonDlg::NrOnLButtonUp(nuUINT nID)
{
if(_ID_TITLE_MY_ == nID)
{
OutputDebugString(TEXT(“”));
}
}
------解决思路----------------------
先把int转成字符串,比如用CString 的Format来格式化字符串
------解决思路----------------------
如楼上所说,使用字符串的格式化语句Format完成即可
------解决思路----------------------
afxDump << nID << "\n";
------解决思路----------------------
谁说OutputDebugString()函数里的参数是wchar类型的字符串(你又不是写死用的OutputDebugStringW函数)?? Unicode字符集下的确是wchar_t,而多字符集下就是char !!
既然你是Unicode字符集,最基础的:
TCHAR szBuffer[32] = {0};
wsprintf(szBuffer,_T("当前nuUINT = %d"),nID);
OutputDebugString(szBuffer);
------解决思路----------------------
作为一个C程序员,对
scanf,sscanf,fscanf
printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。
nuUINT CNLCMyButtonDlg::NrOnLButtonUp(nuUINT nID)
{
if(_ID_TITLE_MY_ == nID)
{
TCHAR s[20];
_stprintf(s,_T("nID:%u"),nID);
OutputDebugString(s);
}
}
------解决思路----------------------
stdafx.h中:
#include <tchar.h>