//獲取NX安裝路徑
char *translation;
UF_translate_variable("UGII_ROOT_DIR", &translation);
//ini檔案與txt檔案路徑
CString BaseDIR1;
BaseDIR1.Format(L"%s",translation);
為啥BaseDIR1總是亂碼呢
uj5u.com熱心網友回復:
如果工程是多位元組編碼,translation的值必須是ANSI編碼,也就是本地編碼,GBK或者GB2312,如果是Unicode工程,translation的值必須是Unicode編碼,你這里應該是編碼問題,translation的值可能是UTF8編碼,猜測?!uj5u.com熱心網友回復:
UF_translate_variable這個函式要求的引數是char型別的還是wchar型別的?你除錯一下,看看經過UF_translate_variable("UGII_ROOT_DIR", &translation);之后,translation里面的只是什么,就知道哪里出錯了uj5u.com熱心網友回復:
BaseDIR1.Format(L"%s", A2W(translation));試試
uj5u.com熱心網友回復:
CString BaseDIR1; BaseDIR1 = translation;uj5u.com熱心網友回復:
//獲取NX安裝路徑
TCHAR *translation;
UF_translate_variable(_T("UGII_ROOT_DIR"), &translation);
//ini檔案與txt檔案路徑
CString BaseDIR1;
BaseDIR1.Format(_T("%s"),translation);
建議樓主打開include\tchar.h一眼。
uj5u.com熱心網友回復:
// 方法1 (不一定適用于所有版本的 CString:MTC/ATL/WTL,請測驗是否可行)
char *translation;
UF_translate_variable("UGII_ROOT_DIR", &translation);
CString BaseDir1(translation);
// 方法2 (不一定適用于所有版本的 CString:MTC/ATL/WTL,請測驗是否可行)
char *translation;
UF_translate_variable("UGII_ROOT_DIR", &translation);
CString BaseDir1 = translation;
// 方法3 (理論上通用所有的 CString 版本)
char *translation;
UF_translate_variable("UGII_ROOT_DIR", &translation);
CString BaseDir1;
LPTSTR lpszBuffer = BaseDir1.GetBuffer(1024);
wsprintf(lpszBuffer, TEXT("%hs"), translation);
BaseDir1.ReleaseBuffer();
uj5u.com熱心網友回復:
L"%s"編碼系統混亂,字串一會兒有L,一會兒沒有
不用使用L,使用_T("ABC")
uj5u.com熱心網友回復:
字符集的問題吧1、工程字符集改成多位元組
2、如果是Unicode款位元組的話,在format時可以使用MultiByteToWideChar轉換
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/82917.html
標籤:基礎類
上一篇:windows在服務程式中如何監聽螢屏旋轉事件 VC C++
下一篇:win10設定快速啟動欄方式
