本篇內(nèi)容主要講解“C#怎么調(diào)用VC DLL”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#怎么調(diào)用VC DLL”吧!
迭部網(wǎng)站建設公司創(chuàng)新互聯(lián),迭部網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為迭部成百上千提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設公司要多少錢,請找那個售后服務好的迭部做網(wǎng)站的公司定做!
本人認為用C#調(diào)用VC DLL是很有用的知識點,我自己感覺很好用啊,不知道別人用我這個方法是否好用。
VC:
比如想要用C#調(diào)用的VC的函數(shù)是:
A( int* b ),
因為指針在C#里不容易接,所以這時候我就會在VC里稍微改變一下,
定義一個結(jié)構(gòu)體:
C{ int num; int* b },
之后把那個調(diào)用的函數(shù)改為:
A( C &c )。
C#:
首先呢,需要引入結(jié)構(gòu)體:
[StructLayout(LayoutKind.Sequential)] public struct C { public int num; public IntPtr b; //注意,這里用的是IntPtr }
然后,引入接口函數(shù):
[DllImport("DLL_NAME.dll")] extern static void A(out C c); //這里的out也可以用ref
然后,調(diào)用:
C c = new C(); A(out c);
***我們需要把輸出的這個c轉(zhuǎn)化為一個int類型的數(shù)組,這樣才好用:
int v = c.num int[] x=new int[v]; int size = System.Runtime.InteropServices.Marshal.SizeOf(new int()); //這里是為了算清楚int類型步長 for (int i = 0; i < v_points_out.points_num; i++) { int p = (int)System.Runtime.InteropServices.Marshal.PtrToStructure(new IntPtr(c.b.ToInt32() + size * i), typeof(int)); //取出每個值 x[i] = p; }
到此,相信大家對“C#怎么調(diào)用VC DLL”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
分享題目:C#怎么調(diào)用VCDLL
URL分享:http://vcdvsql.cn/article10/pcddgo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、網(wǎng)站內(nèi)鏈、搜索引擎優(yōu)化、軟件開發(fā)、手機網(wǎng)站建設、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)