怎样利用MFC创建VB能引用的DLL方法

原创 2003年06月18日 13:47:00

    我们在使用MFC写DLL文件后,无法在VB工程(Project)的References中查找到并引用它,即无法使用Dim   s As New class 或 Dim s As class, Set s = New class方式使用。

    下面解释怎样利用MFC创建VB能引用的DLL方法,其步骤:

  (1)选择MFC AppWizard (dll)创建新工程;(比如:DlgTest.dll)

  (2)选择Regular DLL with MFC statically linked 并选择Automation;

  (3)创建MFC Class 其Base class为CCmdTarget且选中Automation;(假设类名为Dlg)

  (4)修改DlgTest.def文件中的:LIBRARY  "DlgTest.dll" (修改)DllUnregisterServer PRIVATE(添加); 

  (5)在DlgTest.odl文件中添加dll文件在vb引用中浏览显示的内容(可选)

  [uuid(........), version(1.0), helpstring("My test contents ...")]

  (6)在构造和析构函数内添加下列代码:

    CDlg::Dlg()                         CDlg::~Dlg()

    {                                    {

        AfxOleLockApp();                    AfxOleUnlockApp();

    }                                    }

  (7)注释掉OnFinalRelease函数中的CCmdTarget::OnFinalRelease(),添加delete this;

  (8)在Dlg.cpp文件中添加下列代码(有下划线、紫色的代码)

    BEGIN_MESSAGE_MAP(CDlg, CCmdTarget)

    ............

    END_MESSAGE_MAP()

    IMPLEMENT_OLECREATE(CDlg, "DlgTest.Dlg", ClassGuid Value)

    ClassGuid Value为.odl文件中的coclass处的uuid值

  (9)在Dlg.h文件中,添加下列下划线、紫色的代码

    DECLARE_MESSAGE_MAP()

    DECLARE_OLECREATE(CDlg)

Windows/MFC_dll生成文件___浅谈def文件(用于生成dll)

def文件格式(DLL导出)   2009-12-03 21:37:41|  分类: C++ |举报 |字号 订阅 今天接触了def文件,在客户端工程里有不少def文件,有关dll导出的今天就花...
  • u010003835
  • u010003835
  • 2015年09月10日 21:12
  • 720

Visual C++ 编写供 VB.Net调用的Dll

Visual C++ 编写供 VB.Net调用的Dll 最近在使用VB 为 C++ 的dll 模块编写一个界面, 看到这篇文章非常好, 就转载了过来 点我进入原文 跟...
  • zhyh1435589631
  • zhyh1435589631
  • 2016年08月11日 11:35
  • 2564

在MFC中调用DLL

欲在。EXE 中调用PRO.DLLPRO.DLL中函数如:long MenuExecute( char *, long , HWND , long , char *, long , void * );...
  • mannhello
  • mannhello
  • 2010年06月02日 18:23
  • 6596

怎样用VB编写.DLL动态链接库文件

VB中创建的DLL只是COM组件,无法作为输出函数的DLL,其实这只是个错误的说法。其实MS非常狡猾,如果你是个VB疯狂发烧友的话,应该早就狂试出这种可以创建输出函数的DLL的方法。    VB...
  • JDDXM
  • JDDXM
  • 2015年12月08日 16:02
  • 1413

VB 引用外部DLL 开发 Activex Dll

VB 引用外部DLL  开发Activex Dll,项目开发需要,自学VB开发dll ,废话少说,直接上图、上文字。 例子中外部DLL 的名称DC_CARD_DLL32.dll,其中有rf_test_...
  • wzbwzh
  • wzbwzh
  • 2014年01月06日 21:48
  • 9758

VB封装DLL实例(二)

正 文: 上文中我们已经就DLL的基本概念,以及如何将VBA代码封装为DLL,如何引用该生成的DLL动态链接库,进行了初步的讲解,我想大家对于VB封装DLL应该有了一个初步的了解。 下面主要就DL...
  • miaoyangzhi
  • miaoyangzhi
  • 2017年02月11日 17:37
  • 955

vb调用C#写的dll

在做系统升级维护的项目中,用到了老系统(VB实现)要调用一部分新功能(C#实现)的情况,于是进行了简单的调查。发现如下资料网上发现的资料。-------------------------------...
  • smallboy_5
  • smallboy_5
  • 2008年10月01日 16:47
  • 13582

C# 调用 C++ MFC DLL

 1. C++ MFC DLL 的封装 创建 MFC DLL 项目选择 DLL type 为 Regular DLL using shared MFC DLL设置项目属性的 Charact...
  • abccome
  • abccome
  • 2017年02月09日 10:23
  • 624

VB封装DLL文件讲解---3

VB中的模块,类,ActiveX与API的使用 一、模块 (Module)   在VB中,模块会优先执行,其实说白了,模块就象是全局的过程和函数调用。这是初步的提高代码可复用性的途径。...
  • yiyiyicz
  • yiyiyicz
  • 2013年12月04日 09:20
  • 3290

VB6.0软件调用VS C++ DLL问题解决

源起之前为设备的DLL供客户二次开发,包括C++,C#等调用都没有问题,以一个函数为例,C文件和H文件里写法如下:UCHAR CharToHex(UCHAR ch) extern "C" __decl...
  • yanyuanfen2011
  • yanyuanfen2011
  • 2017年08月14日 20:44
  • 371
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样利用MFC创建VB能引用的DLL方法
举报原因:
原因补充:

(最多只允许输入30个字)