一般VB.NET調用DLL可以通過Declare 語句在模塊級用于聲明對動態鏈接庫 (DLL) 中的外部過程的引用。
成都創新互聯一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質量求生存,以技術求發展,成交一個客戶多一個朋友!為您提供網站設計、做網站、成都網頁設計、小程序制作、成都網站開發、成都網站制作、成都軟件開發、app軟件定制開發是成都本地專業的網站建設和網站設計公司,等你一起來見證!
Private Declare Sub
myFunc1 Lib "mylib.dll"
(ByVal strName As String)
但是,VB.NET,C#.NET創建的DLL是個類庫,不能生成標準的 DLL 文件,不能采用declare ()的方式。應該在解決方案資源管理器下的需要引用的項目的引用欄點擊鼠標右鍵--添加對這個類庫[mylib.dll]的引用即可。
以下為VB.NET調用DLL代碼示例:
DllImport("kcomm.dll", CharSetCharSet:
=CharSet.Ansi, SetlastError:=True)
Private Shared Function gettxt(ByVal
port As Integer, ByVal wait As
Integer, ByVal _date As Long,
ByVal _time As Long, ByVal
filename As String) As Integer
End Function
根據實際情況更改你的DLL名稱、函數名、參數名和類型。
VB.NET調用DLL的只是COM組件,無法作為輸出函數的DLL,其實這只是個錯誤的說法。其實MS非常狡猾,如果你是個VB瘋狂發燒友的話,應該早就狂試出這種可以創建輸出函數的DLL的方法。
VB編譯文件實際上采取了兩次編譯的方法,首先是調用C2.exe產生*.OBJ文件,然后調用Link.EXE連接。如果在LINK的時候添加EXPORT選項,實際上是可以輸出函數的。但是,在VB的工程選項中將這些屏蔽了。而且過分的是:VB在Build完成后會將OBJ文件刪除,這樣就無法手動通過Link來創建我們需要的DLL了。不過我找到一個比較齷鹺的變通的方法,就是先創建一個Exe工程,在Form_Load事件里面寫下面的語句:
Sub Main
If MsgBox("哈哈",
vbOKCancel) = vbOK Then
Shell "link2.exe "
Command$
End If
End Sub
然后編譯為LinkTemp.EXE,接下來將LINK.EXE改名為Link2.exe,將LinkTemp.EXE改名為Link.EXE。這樣在VB調用Link.EXE時會彈出對話框,處理就會中斷。這時就可以有機會將OBJ文件拷貝出來了。
然后我創建了一個ActiveX DLL工程,在這個工程里面添加一個Module并創建一個Public函數mathadd:
Public Function mathadd
(ByVal a As Long, ByVal
b As Long) As Long
mathadd = a + b
End Function
編譯這個工程,在Link的時候就會中斷。然后把創建的Class1.obj、Module1.obj、Project1.obj備份出來。然后就可以調用Link2.exe連接OBJ到DLL了,我的連接代碼是:
Link2.exe "e:\\vbdll\\Class1.obj"
"e:\\vbdll\\Module1.obj"
"e:\\vbdll\\Project1.obj"
"E:\\Program Files\\Microsoft
Visual Studio\\VB98\\VBAEXE6.LIB"
/ENTRY:__vbaS /EXPORT:mathadd /OUT:
"e:\\vbdll\\ProjectOK.dll"
/BASE:0x11000000 /SUBSYSTEM:
WINDOWS,4.0 /VERS
注意里面的/ENTRY和/EXPORT開關,/EXPORT開關聲明了輸出函數mathadd。這樣就大功告成了,可以被其他語言引入,例如在VB中,只需要:
Private Declare Function mathadd
Lib "e:\\vbdll\\ProjectOK.dll"
(ByVal a As Long, ByVal b As
Long) As Long
在VB.NET中不能直接添加opengl,需要引用csgl庫.具體方法如下:
1 下載csgl庫,壓縮包內有libinstall和dep兩個文件夾
2 運行libinstall文件夾下的install程序,將csgl.dll和csgl.native.dll文件添加至系統文件夾。
3 運用dep文件夾下的ResBuider程序(具體功能暫不可知)。
4 將dep文件夾下的Debug和Release文件夾內容分別復制到運行目錄的相應文件夾中即可。
在項目A里添加引用,在“添加引用”對話框里找到項目B就可以了。也可以先把項目B生成dll文件,然后在項目A中添加對這個dll文件的引用。
如果是托管的Dll或則com組件類,直接在項目上添加這個DLL的引用\x0d\x0a如果是非托管的,已API函數方式調用的DLL,使用DllImport方式申明DLL函數\x0d\x0a\x0d\x0a不過一般這種情況是吧IP地址等配置信息寫在配置文件里面,若XML,INI,應用程序配置文件等方式\x0d\x0a\x0d\x0a配置文件用戶可以直接打開查看,連接字符串寫在那里,數據庫就不安全了。
本文題目:vb.net引用lib,net vb
網頁URL:http://m.kartarina.com/article34/heggse.html
成都網站建設公司_創新互聯,為您提供網站制作、電子商務、外貿網站建設、建站公司、軟件開發、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯