如何用VC调用VB的DLL
VB的DLL属于COM
如果我们自己用VB调一个COM的DLL是最方便的,只需要有这个DLL的二进制文件就可以了
我们在VB中可以直接"引用"一下这个文件,然后按F2,就可以看到这个DLL里的所有接口,方法,结构(TYPE)及常量等等
写代码的过程也可以在对象名后面打上个点号,VB就会自动列出所有的方法属性及形参
如果我用VB写了一个DLL,想用VC来调用,怎么办.
隔行如隔山,GOOGLE了好久,都找不到什么有用的信息,全是Ctrl+C
假调我的DLL代码如下
=============
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Class1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Public Sub HelloWorld()
MsgBox "HelloWorld"
End Sub
Private Sub Command1_Click()
Dim objClass As myTest.Class1 '定义变量
'实例化
Set objClass = New myTest.Class1
'调用这个对象的一个方法
Call objClass.HelloWorld
'释放对象
Set objClass = Nothing
End Sub
#include "stdafx.h"
#include "C:\Program Files\Microsoft Visual Studio\MyProjects\dfgdfg\Debug\Test.tlh"
//#import "C:\Documents and Settings\Administrator\桌面\VB调用方式\Dll源代码\Test.dll"
int main(int argc, char* argv[])
{
CoInitialize(NULL);
//myTest::Class1Ptr p(__uuidof(myTest::Class1));
myTest::Class1 p=NULL;
p.CreateInstance(__uuidof(myTest::Class1));
p->HelloWorld();
return 0;
}