使用visual studio 2017 创建动态链接库(DLL),供VB6.0使用

时间:2022-07-30 15:48:49

       C++在上位机软件开发中使用非常普遍,然而其又具有上手难、开发时间较长的特点,故在开发一些软件的时候,可以采用VB+/C++混编的方式:即采用C++将一些通用且固定的程序制作成动态链接库,由VB去调用,这样一来,开发过程就会相对容易很多。

       现以VS2017为例说一下制作动态链接库文件的流程和一些需要注意的问题:

       1、建立工程:打开VS2017后,新建项目,因为VS2017较之前的开发版本做了不小的改动,故依次点选visual c++/windows 桌面/windows桌面向导,再选择“动态链接库”、“预编译头”即可。

       2、需要依次新建dll.cpp、dll.h、dll.def这三个文件,其代码示例依次如下:

__stdcall:代表可被其它语言调用

dll.def的作用是使函数名称可以为标准名称,看起来简单,否则会有如:test1 @8

// dlltest2.cpp: 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include "dlltest2.h"

int __stdcall test1(int a, int b, int c)
{
return a + b + c;
}

int __stdcall test2(int a, int b)
{
return a - b;
//dlltest2.h#pragma onceextern "C" _declspec(dllexport)  int __stdcall test1(int a, int b, int c);extern "C" _declspec(dllexport)  int __stdcall test2(int a, int b);
//dlltest2.defLIBRARY "dlltest2"EXPORTStest1 @ 1test2 @ 2

务必要选择release模式

ctrl+f5 生成结果后,生成的结果可以dependency 进行查看,确保没有显示丢失的项目,若有,须网上下载相应控件进行注册安装。

最后,用VB进行声明并调用即可:private declare  test1 lib "test.dll" (byval a as integer,...)