首先新建一個類庫項目,把你的代碼以類(需要實例)或模塊(靜態(tài))的形式封裝好,生成過后在輸出目錄(bin/debug或bin/release)里面會有個項目名.dll文件,就是它了。
成都創(chuàng)新互聯(lián)公司憑借專業(yè)的設計團隊扎實的技術支持、優(yōu)質(zhì)高效的服務意識和豐厚的資源優(yōu)勢,提供專業(yè)的網(wǎng)站策劃、成都做網(wǎng)站、網(wǎng)站建設、網(wǎng)站優(yōu)化、軟件開發(fā)、網(wǎng)站改版等服務,在成都10余年的網(wǎng)站建設設計經(jīng)驗,為成都成百上千家中小型企業(yè)策劃設計了網(wǎng)站。
在調(diào)用方項目里,右鍵解決方案資源管理器中的引用,添加引用,瀏覽到你的dll文件。接著到你的代碼中,代碼最上面寫:
Imports 項目名
然后調(diào)用這個類或模塊即可。
根據(jù)你的情況,可能用模塊封裝更適合一些。比如:
Public Module MatrixSolve
Public Function Solve(para1 As Double,para2 As Double) As Double
'一些代碼
Return result
End Function
End Module
調(diào)用起來只要這樣即可:
Dim num As Double = MatrixSolve.Solve(x,y)
注意模塊和函數(shù)的訪問級別都用Public,否則外面無法訪問。
這個一般是一個Form類的構造函數(shù)。
MyBase.New ( )是調(diào)用父類的構造函數(shù),InitializeComponent ( )是調(diào)用自己的InitializeComponent 方法。一般你在VS里拖界面,VS會自動幫你生成這個方法的實現(xiàn),里面是用代碼實現(xiàn)你拖出來的界面布局。
當然可以的,需要System.Runtime.InteropServices?命名空間中的?Marshal?類
Imports?System.Runtime.InteropServices?'這里一定要有?
Public?Class?Form1
Public?Structure?m_Point
Dim?x?As?Integer
Dim?y?As?Integer
End?Structure
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Dim?i?As?Integer?=?50
Dim?ai()?As?Integer?=?{1,?2,?3,?4,?5}
Dim?pi?As?IntPtr?=?GCHandle.Alloc(i,?GCHandleType.Pinned).AddrOfPinnedObject()?'取得整形變量的指針?
Dim?pai?As?IntPtr?=?GCHandle.Alloc(ai,?GCHandleType.Pinned).AddrOfPinnedObject()?'取得整形數(shù)組首地址指針
MsgBox(Marshal.ReadInt32(pi,?0))?'讀回整形變量指針指向的值
MsgBox(Marshal.ReadInt32(pai,?0?*?4))?'讀回數(shù)組的第一個元素
MsgBox(Marshal.ReadInt32(pai,?1?*?4))?'讀回數(shù)組的第二個元素
MsgBox(Marshal.ReadInt32(pai,?2?*?4))?'讀回數(shù)組的第三個元素
'-----下面是結構--------------------------
Dim?m_p?As?New?m_Point
m_p.x?=?100
m_p.y?=?50
Dim?pm_p?As?IntPtr?=?GCHandle.Alloc(m_p,?GCHandleType.Pinned).AddrOfPinnedObject()?'取得結構首地址指針?
MsgBox(Marshal.ReadInt32(pm_p,?0?*?4))?'讀回結構的第一個值
MsgBox(Marshal.ReadInt32(pm_p,?1?*?4))?'讀回結構的第二個值
End?Sub
End?Class
可以像這樣,返回變量的值。
Visual Basic code
Public Function number() As Single '你在這已經(jīng)設置了函數(shù)返回值的類型
Dim nJTTZ As Single = 1
return nJTTZ '返回變量的值
End Function
Public Function Index() As Single
Dim zJTTZ As Single = 1
return zJTTZ
End Function
Public Overloads Function CalcAmount() As Boolean
AddItemRow("", "第一部分:靜態(tài)投資", "正線公里", number(), Index()) ‘調(diào)用函數(shù)即得到返回的變量值。
End Function
代碼已測試。
一、測試需要的INI文件。名稱為“setinfo.ini”,存放路徑為你解決方案里“Bin“文件夾的”Debug“文件夾里。
內(nèi)容:
[Location]
pnlTime.Location.X=787
pnlTime.Location.Y=0
[TopMost]
Top=True
二、操作INI文件的類。新建一個類,類中內(nèi)容為:
Public?Class?Class1
Public?Declare?Function?GetPrivateProfileString?Lib?"kernel32"?Alias?"GetPrivateProfileStringA"?_
(?_
ByVal?lpApplicationName?As?String,?_
ByVal?lpKeyName?As?String,?_
ByVal?lpDefault?As?String,?_
ByVal?lpReturnedString?As?String,?_
ByVal?nSize?As?Int32,?_
ByVal?lpFileName?As?String?_
)?As?Int32
End?Class
三、界面代碼:
Imports?System.IO?'for?path
Public?Class?Form1
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
getINI()
End?Sub
Private?Sub?getINI()
Dim?iniclass?As?New?Class1?'
Dim?myBf?As?String?'get?set_info?開辟存儲的內(nèi)存
myBf?=?New?String(CChar(""),?256)
Dim?myFN?As?String?'配置文件的文件路徑
myFN?=?Path.Combine(My.Application.Info.DirectoryPath,?"setinfo.ini")
Dim?myAN?As?String?'Application_NAME,也是Section名稱
myAN?=?Me.TextBox1.Text
Dim?myKN?As?String?'KEY_NAME,關鍵字名稱
myKN?=?Me.TextBox2.Text
Class1.GetPrivateProfileString(myAN,?myKN,?"",?myBf,?myBf.Length,?myFN)?'調(diào)用讀取INI文件的操作
TextBox3.Text?=?Microsoft.VisualBasic.Left(myBf,?InStr(myBf,?Chr(0))?-?1)?'截取有用部分,有必要
End?Sub
End?Class
四、測試截圖如下
如上面所說,你可能還不太了解類、函數(shù)等的作用。
類可以用來封裝一系列操作,或者是一類對象的特性。像上面的描述,有可能是濫用類了。
建議你這樣,弄一個專門的運算類,里面有四個運算的函數(shù),比如:
Class 運算
Shared Function 加(ByVal 加數(shù)1 As Decimal, ByVal 加數(shù)2 As Decimal) As Decimal
'舉個例子
Return 加數(shù)1 + 加數(shù)2 '百度打不出英文加號,你自己改一下
Exit Function
End Function
Shared Function 減(ByVal 被減數(shù) As Decimal, ByVal 減數(shù) As Decimal) As Decimal
'舉個例子
Return 被減數(shù) - 減數(shù)
Exit Function
End Function
End Class
上面我寫了兩個例子,你可以照抄然后自己寫乘除的,總之不要濫用類就行。
PS:Shared函數(shù)的使用不需要類被實例化,可以直接這樣使用:
Msgbox(運算.加(1,2).ToString)
你會發(fā)現(xiàn)“運算”是藍色的