首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么用VC调用VB的DLL

2012-12-29 
如何用VC调用VB的DLLVB的DLL属于COM如果我们自己用VB调一个COM的DLL是最方便的,只需要有这个DLL的二进制文

如何用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



==============

可以看到,只有一个Class1的类,里面只有一个HelloWorld()方法



编译成DLL文件后,别人用VB来调,可以这样
在"引用"里找添加这个文件

用这样的代码调用

Private Sub Command1_Click()
    Dim objClass As myTest.Class1       '定义变量
    
    '实例化
    Set objClass = New myTest.Class1
    
    '调用这个对象的一个方法
    Call objClass.HelloWorld
    
    '释放对象
    Set objClass = Nothing
End Sub






换成VC要调用这个DLL,该怎么办?
我在网上刮了好久,好像据说可以这样子弄,可是一直编译不通过

#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;
}





[解决办法]
反方向不懂。
发到c版试试
[解决办法]
关注
[解决办法]
我也试过,不行。看来要通过其它方式了...............关注

热点排行