VS2019生成一个Mydll.DLL并用另一个mytest.exe调用(静态)。

1.开发工具

开发工具:VS2019

VisualStudio是强大的windows平台综合开发工具(集成开发环境),界面比较友好,有很好的调试工具。

开发对象:DLL:Dynamic Link Library 动态链接库 是一个被其他应用程序调用的程序模块

2.创建.DLL文件。

1.打开VS2019

创建一个.DLL工程文件(也可以选择空项目,创建完毕 右击项目 -> 属性 -> 常规 -> 配置类型 选择 动态库.dll。)

在生成的文件里创建一个新类,命名为mydll

.h 头文件中添加

declspec(dllexport)用于Windows中的动态库中,声明导出函数、类、对象等供外面调用。即将函数、类等声明为导出函数,供其它程序调用,作为动态库的对外接口函数、类等。

.cpp源文件添加

添加完成后,右键工程,点击生成。生成的文件路径。

跟 .exe 文件不同的是,.dll 文件不能直接执行,否则会报错。

3.创建测试的程序。(静态调用.dll)

打开VS2019。新建一个控制台应用程序模板。

静态调用:连接阶段 #pragma comment(lib,“Mydll.lib”)告诉连机器需要在FirstDll.lib文件中将DLL库信息编写到EXE文件中

在生成的模板中添加一个头文件Mytest.h,并在头文件中添加如下代码

dllimport是在外部程序需要使用DLL内相关内容时使用的关键字。当一个外部程序要使用DLL 内部代码(类,函数,全局变量)时,只需要在程序内部使用(dllimport)关键字声明需要使用的代码就可以了(dllimport)作用是把DLL中的相关代码插入到应用程序中。

#pragma once
#pragma comment(lib,"Mydll.lib")
#include <iostream>

extern "C" __declspec(dllimport) void SayHelloChinese();

在mytest.cpp中调用SayHelloChinese()函数,该函数是具体实现是在DLL中。

#include "Mytest.h"

int main()
{
	SayHelloChinese();
}

4.将.dll文件和.lib文件放到Mytest工程中。

在生成的.dll文件和.lib文件路径中复制。

lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。

复制到Mytest工程中。

5.运行Mytest测试程序。

测试成功。

说明:如果.dll中函数较多,为了使用 DLL 中的 API 函数,我们必须要有 API 函数的声明(.H)和其导入库(.LIB)


版权声明:本文为weixin_42165666原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。