labview呼叫dll,dll需向labview返回字串,結果試了好幾次都是亂碼,後來才找到了原因。
1.返回值要為字串指標。dll函式型別要命名為char *;
2.如果是cstring型別的字串,要先轉換為char *的字串,可用下面的**進行轉換。
方法:使用api:widechartomultibyte進行轉換
cstring str = _t("d:\\校內專案");
//注意:以下n和len的值大小不同,n是按字元計算的,len是按位元組計算的
int n = str.getlength(); // n = 14, len = 18
//獲取寬位元組字元的大小,大小是按位元組計算的
int len = widechartomultibyte(cp_acp,0,str,str.getlength(),null,0,null,null);
//為多位元組字元陣列申請空間,陣列大小為按位元組計算的寬位元組位元組大小
char * pfilename = new char[len+1]; //以位元組為單位
//寬位元組編碼轉換成多位元組編碼
widechartomultibyte(cp_acp,0,str,str.getlength(),pfilename,len,null,null);
pfilename[len+1] = '\0'; //多位元組字元以'\0'結束
_declspec(dllexport) char * filepath();
_declspec(dllexport) char * filepath()
opencv與Labview的結合(Dll呼叫)
為什麼會有把二者結合這個想法,主要是在接觸過這兩種工具後,發現它們對影象處理有自己獨特的優勢,但也有自己的缺點,借助c opencv可以實現許多自己想實現的功能,但是在介面設計上得花另一番功夫,labview的長處就在於它的介面設計簡單,控制項拖拽所見即所得,與qt有點類似,當然qt的跨平台性是la...
dll呼叫其他DLL
總結一下這幾天使用其他程式呼叫mfc的dll,呼叫dll裡面的視窗資源,需要把當前資源控制代碼切換到dll中一般廣泛採用 afx manage state afxgetstaticmodulestate 這個是自動化的,放在函式的開頭,在函式使用完之後,自動切換回去 發現在有些時間不好用,比如dll...
C 呼叫dll時的型別轉換總結
c win 32 c char 作為輸入引數轉為 char,通過 encoding 類對這個 string 進行編碼後得到的乙個 char 作為輸出引數轉為 byte,通過 encoding 類對這個 byte 進行解碼,得到字串 c dll 介面 void cplusplustocsharp in...