1、要注意字符集的处理和转换
TCHAR szCLSID[MAX_PATH];
TCHAR szModule[MAX_PATH];
LPWSTR pwsz;
//get the CLSID in string form
StringFromIID(clsid, &pwsz);
if(pwsz)
{
#ifdef UNICODE
lstrcpy(szCLSID, pwsz);
#else
WideCharToMultiByte( CP_ACP, 0, pwsz, -1, szCLSID, sizeof( szCLSID ) / sizeof( TCHAR ), NULL, NULL);
#endif
2、MFC中的UpdateData(): ture给控件变量赋值,false显示数据到控件。true赋值,false显示
UpdateData(TRUE)是将控件的状态传给其关联的变量,当然你要为控件关联上变量才行。
UpdateData(FALSE)是将控件的关联变量的值传给控件并改变控件状态。
UpdateData刷新的是当前对话框。
UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。
UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。
3、如何知道GetLastError()返回的错误代码的意义?
[问题提出] GetLastError()返回的是DWORD数字,有的可以查到什么意思,有的却不行,如何解决? [程序实现] 在你的工程中要用到GetLastError()时,这样写: { //获得信息 LPVOID lpMsgBuf; //Windows will allocate ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0, GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言 (LPTSTR)&lpMsgBuf, 0, NULL ); //显示 ::MessageBox(0, (LPCTSTR)lpMsgBuf, _T("GetLastError"), MB_OK|MB_ICONINFORMATION ); //lpMsgBuf中是你要的错误提示. //释放内存 ::LocalFree( lpMsgBuf ); } |