首先來說說VB調用VB生成的DLL 1. 打開VB 程序,File > New Project 2. 在New Project的對話框中選擇 ActiveX DLL 圖標,VB會自動添加一個Class,名字爲Class1 3. 在Project Window(不是菜單欄)選中這個Class1,然後在Properties Window下,雙擊 Name,然後修改爲VBDll,表示我們將要生成的是VBDLL的Class 4. 在Project Window(不是菜單欄)選中Project1,然後在Properties Window下,雙擊 Name,然後修改爲DLLProject 5. 保存文件和項目,生成兩個文件VBDll.cls 和 DLLProject.vbp。 6. 在VBDLL.cls裏面寫下如下的代碼 Public Function fun1() As String fun1 = "Congratulations! This is your first VB ActiveX DLL!" End Function Public Sub fun2() MsgBox “Hello!” End Sub 7. 保存VBDLL.cls,然後File > Make DLLProject.dll, 經過Compile之後生成以Project的名字命名的DLL,爲DLLProject.dll和 DLLProject.lib 兩個文件 8. 關閉上面的DLLProject,然後File > New Project > 選擇 Standard EXE 9. VB首先要引用前面建立的DLLProject.dll Project菜單欄 > References > 添加前面建立的 DLLProject.dll,然後添加如下的代碼: Option Explicit Private Sub Form_Load() Dim testdll As VBDLL Set testdll = New VBDLL 'DLL的一個新實例 MsgBox testdll.fun1 End Sub Rem 此時引用的是DLLProject.dll 但是Class是VBDLL。 注:爲什麼不可以像前面VB調用VC生成的的DLL那樣,用 Declare 來引用呢?因爲VB生成的DLL不是標準的DLL,所以只能從Project>Reference來引用。
再說說VC來調用VB生成的DLL 在MFC中有一種方便的方法,就是通過ClassWizard利用類型庫生成包裝類,不過有個前提就是com組件的接口必須是派生自IDispatch void CMainFrame::OnMKitHelp() CoInitialize(NULL); |