關於QT呼叫MFC動態庫時傳遞中文字元亂碼問題

2021-07-11 18:39:28 字數 345 閱讀 9235

凡是亂碼,一定是解碼方式不對,在此做個小小的總結。

mfc cstring和qt qstring都採用unicode編碼

mfc中的char *採用gbk編碼,qt中的char *採用utf-8編碼,這裡關於字元的編碼,有個規律就是和原始碼檔案儲存的編一致。

// qt中qstring的unicode編碼轉gbk編碼

qtextcodec * pcodec = qtextcodec :: codecforname(「gbk」);

qbytearray data = pcodec-> fromunicode(datafilepath);

char * p = data.data());

關於在MFC工程中呼叫MFC常規動態庫

使用mfc常規型動態鏈結庫 1 將生成的動態鏈結庫檔案 regudll.dll 和庫檔案 regudll.lib 拷貝到要呼叫的工程dlltest的目錄下,再將 regudll.lib 檔案加入到呼叫工程dlltest中.2 在呼叫工程testdlg.h中加入如下 宣告動態鏈結庫函式 define ...

MFC呼叫動態庫步驟舉例

最近幾天學習掉用硬體的動態庫,下面是呼叫憑條印表機的初始化函式的舉例 1.宣告動態庫中的函式的屬性 typedef int winapi prinerinit char pszchar,char pszrccode 要加上winapi,否則呼叫帶引數的函式會有呼叫錯誤 2.宣告,將動態庫中的函式對映...

Qt 呼叫外部C動態庫

先寫乙個測試程式 test.h include test test.c include test printf hello,1234 做成動態庫,gcc o fpic shared o libtest.so test.h test.c 將libtest.so和test.h拷貝到qt的工程目錄,在pr...