C++制作和调用动态库

C++制作和调用动态库
创建DLL
1.创建对应的DLL头文件

//防止库被重复调用
#ifndef DLL_DEFINE_H
//第一次引入头文件 创建默认宏
#define  DLL_DEFINE_H

//宏判断
#ifdef DLL_EXPORTS
//导出
#define DLLAPI _declspec(dllexport)
#else
//导入
#define DLLAPI _declspec(dllimport)

#endif

#include "iostream"

using namespace std;

class DLLAPI  DLL{
public:
	//默认构造函数
DLL();
   //默认析构函数
~DLL();

   //默认测试函数
static void Test();

};
#endif

2.创建动态库是 项目会默认添加对应的XXX_ DLL_EXPORTS预编译头
在这里插入图片描述

3.编译之后默认工作目录( ( S o l u t i o n D i r ) (SolutionDir) (SolutionDir)(Platform)$(Configuration)\)生成了*.lib *.exp *.dll *.pdb文件
在这里插入图片描述
在这里插入图片描述

调用DLL动态库
1.添加头文件路径
在这里插入图片描述
2.添加lib库路径
在这里插入图片描述
3.添加对应lib
在这里插入图片描述
4.DLL放置在EXE同级目录
最好按这种格式按这种格式放置在项目同级目录下
在这里插入图片描述
5.调用代码DLL代码

// TestDLL.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include "iostream"
//添加动态库头文件
#include "DLL.h"
int _tmain(int argc, _TCHAR* argv[])
{
    printf("================ begin\n");
	getchar();
    //调用DLL动态库
	DLL::Test();
	printf("\n");
	printf("================ end\n");
	system("pause");
	return 0;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作一个简单的C++ DLL动态库,你可以按照以下步骤进行: 1. 创建一个C++文件,实现你想要包含在DLL中的函数或者类。例如,我们创建一个简单的加法函数: ```cpp // add.cpp extern "C" { __declspec(dllexport) int add(int a, int b) { return a + b; } } ``` 2. 使用合适的编译器将该源文件编译成DLL动态库。下面是使用GCC编译器的命令示例: ``` g++ -shared -o add.dll add.cpp ``` 这将会生成一个名为`add.dll`的DLL动态库文件。 请注意,如果你使用的是MSVC编译器,你需要将编译选项中的`-shared`修改为`/DLL`。 3. 确保生成的DLL动态库文件与你的应用程序在同一个目录下,或者将其添加到系统路径中,以便应用程序可以找到它。 4. 在你的C++应用程序中,包含头文件调用DLL动态库中的函数。 ```cpp // main.cpp #include <iostream> extern "C" { __declspec(dllimport) int add(int a, int b); } int main() { int a = 10; int b = 20; int result = add(a, b); std::cout << "Result: " << result << std::endl; return 0; } ``` 5. 使用合适的编译器将应用程序与DLL动态库链接。下面是使用GCC编译器的命令示例: ``` g++ -o main.exe main.cpp add.dll ``` 请注意,如果你使用的是MSVC编译器,你需要将编译选项中的`-o main.exe`修改为`/Fe:main.exe`。 6. 运行生成的可执行文件,你应该能够看到输出结果。 这只是一个简单的示例,实际应用中可能需要处理更多复杂的函数和数据类型。同时,要确保C++编译器和链接器的配置正确,并且DLL动态库文件存在于应用程序能够找到的路径中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值