兩個(gè)項(xiàng)目的依賴關(guān)系重新設(shè)置一下,然后那個(gè)C的項(xiàng)目重新生成一下試試
在大興等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷(xiāo)推廣,外貿(mào)網(wǎng)站制作,大興網(wǎng)站建設(shè)費(fèi)用合理。
我這有vb.net的,知道句柄就可獲取,用C#改了好久才可以。
Declare Function ObjectFromLresult Lib "oleacc" (ByVal lResult As Int32, ByRef riid As System.Guid, ByVal wParam As Int32, ByRef ppvObject As mshtml.IHTMLDocument) As Int32
Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Int32
Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hWnd As Int32, ByVal msg As Int32, ByVal wParam As Int32, ByVal lParam As Int32, ByVal fuFlags As Int32, ByVal uTimeout As Int32, ByRef lpdwResult As Int32) As Int32
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
Const SMTO_ABORTIFHUNG = H2
用這些api可實(shí)現(xiàn),你沒(méi)給分,我也舍不得拿出代碼,費(fèi)了很多時(shí)間才搞定的代碼
在c語(yǔ)言中每一個(gè)變量都有兩個(gè)屬性一個(gè)是值,一個(gè)是址。比如inta=2;變量a的值是2,變量a的地址,可以用取地址
操作符
獲取,即a。因此以C語(yǔ)言的函數(shù)傳遞中具備兩種方式傳遞參數(shù),一種是傳址,一種傳值。比如voidf1(intv){;}//函數(shù)f1v
同LS,“加載”是什么意思
單是加載的話,
非托管的用API
LoadLibrary
托管的用
Assembly類(lèi)的幾個(gè)靜態(tài)方法
不過(guò)你要怎么“顯示”呢
比如,我寫(xiě)一個(gè)dll,里面就一個(gè)函數(shù),F(xiàn)unction
Sum(Byval
a
As
Integer,Byval
b
As
Integer)
As
Long。你怎么顯示呢?
“加載”dll的方法是通用的
但是“使用”(包括你所說(shuō)的顯示)dll要具體情況具體分析。除了一些分析dll的通用軟件,大多數(shù)時(shí)候都要根據(jù)dll中提供的函數(shù)來(lái)決定。
比如VS的工具箱,可以“加載”控件的dll,但不能“加載”user32.dll
如果DLL不是你寫(xiě)的,且你要調(diào)用的函數(shù)不是__stdcall聲明,VB直接調(diào)用是會(huì)報(bào)錯(cuò)的
如果DLL是你寫(xiě)的,注意調(diào)用約定問(wèn)題,并看以下代碼
***************************************************
以下是DLL代碼
.cpp里這么寫(xiě)
extern?"C"__declspec(dllexport)?void?__stdcall?HelloWorld()
{
MessageBox(NULL,"HelloWorld","HelloWorld",NULL);
}
.def里這么寫(xiě)
LIBRARY????? "XXXX"
EXPORTS
;?此處以下添加
HelloWorld@1
*************************************************
vb里這么寫(xiě)
Public?Declare?Sub?HelloWorld?Lib?"XXXX.dll"?()
然后調(diào)用就可以了,上面是VB的代碼,或許VB.net的也差不多
按照我的理解,你的這個(gè)需求是沒(méi)有辦法做到的, 除非C#的dll被封裝為了一個(gè)COM組件并且注冊(cè)了,但是你的這個(gè)dll已經(jīng)寫(xiě)成了,所以理論上來(lái)說(shuō)應(yīng)該不是com,而C#的程序集是不提供向前兼容的,所以用一個(gè)老的語(yǔ)言調(diào)用新的技術(shù)的組件是做不到的,不過(guò)也有一種可能性,不過(guò)很難實(shí)現(xiàn),大體邏輯這樣,首先通過(guò)vb調(diào)用一個(gè)native的組件,用C或者c++完成,在這個(gè)組件里面加載clr,在clr里面加載c#的程序集,實(shí)例化對(duì)象,執(zhí)行調(diào)用
當(dāng)前標(biāo)題:vb.net加載c接口的簡(jiǎn)單介紹
鏈接分享:http://www.ekvhdxd.cn/article18/dooiedp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、外貿(mào)建站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容