UNICODE中我调用了一些库,库中函数不支持Unicode怎么办

可以使用T2A这个宏,代码

CFileDialog hFileDlg(FALSE,NULL,NULL,OFN_HIDEREADONLY   |OFN_OVERWRITEPROMPT    OFN_CREATEPROMPT, _T("(*.TAB)|*.TAB|| "),NULL);

 CString   strFileName;
 LPTSTR   pszfilename=strFileName.GetBuffer(255);
 memset(pszfilename,0,255);
 lstrcpy(pszfilename, _T("未命名"));
 hFileDlg.m_ofn.lpstrFile    pszfilename;   //设置默认文件名失败
 hFileDlg.m_ofn.nMaxFile =_MAX_PATH;
 hFileDlg.m_ofn.lpstrDefExt          _T("TAB ");
 hFileDlg.m_ofn.lpstrTitle            _T("导出到文件 ");

 if   (hFileDlg.DoModal()   ==   IDCANCEL    
 {
  return;
 }
 USES_CONVERSION;
 const char* ptr = T2A(strFileName.GetBuffer(0));//这个宏
 mitab_handle tabHandle = mitab_c_create(ptr,"tab",NULL,90,-90,180,-180);
 if(tabHandle == NULL)
 {
  ::AfxMessageBox(_T("图层打开失败"));
  return;
 }
 strFileName.ReleaseBuffer();

mitib这个库本身不支持unicode的

如果大家看到,最好能一起讨论,mitab_c_create这个函数现在断点触发了,使用不当,原因查找

posted @ 2011-03-23 12:00  银翼的魔术师  阅读(246)  评论(0编辑  收藏  举报