如何把DLL封裝為COM組件供C#程序調(diào)用
如何把DLL封裝為COM組件供C#程序調(diào)用
慕標(biāo)琳琳
2019-08-03 10:03:20
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果是簡(jiǎn)單的C++,比如函數(shù)參數(shù)類型沒(méi)有復(fù)雜的結(jié)構(gòu)的,那就編譯成普通的DLL,然后用C#的DLLImport(就像C#里用windows api一樣)。
如果是復(fù)雜的C++庫(kù),那還是建一個(gè)C++/CLI工程作為橋梁,封裝C++的函數(shù)和類到托管C的函數(shù)和類。
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
你把Com導(dǎo)入進(jìn)去,然后申明DllImport調(diào)用哪個(gè)方法。
其他的系統(tǒng)會(huì)自動(dòng)做轉(zhuǎn)換的,就是說(shuō)C++類型會(huì)自己轉(zhuǎn)化成C#類型的。
補(bǔ)充:句柄什么的你可能要用C#的Unsafe代碼,比如說(shuō)窗口的句柄可以這樣獲取
IntPtr handle = pictureBox.Handle;
舉報(bào)