C 呼叫C dll string型別返回

2021-10-11 19:14:30 字數 849 閱讀 2009

c++端:(定義返回資料為結構體vector4)

structvector4

;

c#端:(接收返回的結構體vector4)

[structlayout(layoutkind.sequential)]

structvector4

其實就很簡單一句話,用intptr接收char* 引數就完事了。

inrptr:用於表示指標或控制代碼的平台特定型別;接收到intptr資料之後,進行乙個資料轉換就行了:

//與int互轉

inti=1;

intptr p=newintptr(i);

intch_i=(int) p;

//與string互轉

stringstr="a";

intptr p=marshal.stringtohglobalansi(str);

strings=marshal.ptrtostringansi(p);

marshal.freehglobal(p)

C 呼叫C dll string型別返回

c 端 定義返回資料為結構體vector4 struct vector4 c 端 接收返回的結構體vector4 structlayout layoutkind.sequential struct vector4 其實就很簡單一句話,用intptr接收char 引數就完事了。inrptr 用於表示指...

c 呼叫dll型別對應表

c 呼叫dll 檔案時引數對應表 wtypes.h 中的非託管型別 非託管 c 語言型別 託管類名 說明 handle void system.intptr 32 位 byte unsigned char system.byte 8 位short short system.int16 16 位 wo...

C 專案呼叫託管型別的dll

比如在c 專案中,使用c 類庫專案型別生成dll檔案,或使用其他人寫好的託管型別的dll檔案。步驟如下 滑鼠右鍵當前專案下的引用 新增引用 瀏覽 選擇要引用的dll檔案即可。檢查方法 2.1 檢查dll的.net版本 使用vs自帶的一款反編譯工具ildasm.exe,開啟dll檔案,雙擊 manif...