如果DLL不是你寫的,且你要調用的函數不是__stdcall聲明,VB直接調用是會報錯的
臨川ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
如果DLL是你寫的,注意調用約定問題,并看以下代碼
***************************************************
以下是DLL代碼
.cpp里這么寫
extern?"C"__declspec(dllexport)?void?__stdcall?HelloWorld()
{
MessageBox(NULL,"HelloWorld","HelloWorld",NULL);
}
.def里這么寫
LIBRARY????? "XXXX"
EXPORTS
;?此處以下添加
HelloWorld@1
*************************************************
vb里這么寫
Public?Declare?Sub?HelloWorld?Lib?"XXXX.dll"?()
然后調用就可以了,上面是VB的代碼,或許VB.net的也差不多
在c語言中每一個變量都有兩個屬性一個是值,一個是址。比如inta=2;變量a的值是2,變量a的地址,可以用取地址
操作符
獲取,即a。因此以C語言的函數傳遞中具備兩種方式傳遞參數,一種是傳址,一種傳值。比如voidf1(intv){;}//函數f1v
按照我的理解,你的這個需求是沒有辦法做到的, 除非C#的dll被封裝為了一個COM組件并且注冊了,但是你的這個dll已經寫成了,所以理論上來說應該不是com,而C#的程序集是不提供向前兼容的,所以用一個老的語言調用新的技術的組件是做不到的,不過也有一種可能性,不過很難實現,大體邏輯這樣,首先通過vb調用一個native的組件,用C或者c++完成,在這個組件里面加載clr,在clr里面加載c#的程序集,實例化對象,執行調用
可以調用,基于的框架是一致,只要先把VB.net寫的程序編譯成dll之后就可以調用,如果是在程序里面直接調用的話需要先引用vb類
using Microsoft.VisualBasic
------------------------------------------00000000000000000000000000++++++++++++++++++
網頁標題:vb.net調用c類庫,c#調用c++類庫
分享鏈接:http://m.kartarina.com/article36/hegspg.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、微信公眾號、商城網站、定制開發、網站內鏈、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯