1. 程式人生 > >關於 C#呼叫c庫,將C#的byte[]傳入C庫的方法和將C庫的char*向上傳入C#的回撥函式byte[] 的方法

關於 C#呼叫c庫,將C#的byte[]傳入C庫的方法和將C庫的char*向上傳入C#的回撥函式byte[] 的方法

需求

        使用C#開發,因某種原因,寫了C庫Dll,使用C#抓圖資料傳入C,將C庫收到的圖片資料向上傳入C#回撥函式。

 

當前現狀

        C#中將byte[]轉換成Intptr傳入C庫,實際使用時,C#轉IntPtr傳入C庫後,C庫直接列印資料基本都是錯誤的。

 

實現原理

        C#向下傳入C/C++,將C#的byte[]傳入C的unsigned char *;

        C/C++向上傳出到C#,將C的unsigned char *傳出到C#的IntPtr。

 

實現方式

  • C#將byte[]傳入C/C++庫

  • C/C++庫將[unsigned] char *傳出到C#應用