VS生成dll并且查看dll中函数

本文介绍了如何在VisualStudio中通过预处理宏管理动态链接库的导出,包括使用`#define`定义Opencv_API并在结构体函数前添加该宏,以及通过dumpbin-exports工具检查导出结果。
摘要由CSDN通过智能技术生成

VS生成动态库:

首先利用 #define 定义一个 预处理宏:

#define opencvAPI

#ifdef opencvAPI
#define Opencv_API __declspec(dllexport)
#else
#define Opencv_API __declspec(dllimport)
#endif // opencvAPI

接着在需要导出的算子出加上定义好的预处理宏 :

头文件中:

#pragma once
#include"exportAPI.h"
#include<iostream>

struct Student
{
	std::string name;
	int age;
	float score;
};

extern "C" Opencv_API void assignment(Student Someone);

源文件中:

#include"exportDll2.h"

Opencv_API void assignment(Student Someone)
{
	Someone.age = 10;
	Someone.name = "sadhajshd";
	Someone.score = 60;
}

最后生成即可。

查看dll文件中函数方法:

1.打开VS自带的Prompt工具,使用dumpbin -exports <dll地址> 即可查看。

如果只有第一张图的Summary的话就是导出不成功,看到函数的话即导出成功。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个示例: 1. 创建一个新的 C++ 项目。选择“动态链接库”作为项目类型。 2. 在“解决方案资源管理器”,右键单击“源文件文件夹,选择“添加”>“新项”。 3. 在“添加新项”对话框,选择“C++文件(.cpp)”,并命名为“mylib.cpp”。 4. 在“mylib.cpp”文件编写以下代码: ``` #include "pch.h" #include "mylib.h" int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } ``` 5. 在“解决方案资源管理器”,右键单击“头文件文件夹,选择“添加”>“新项”。 6. 在“添加新项”对话框,选择“头文件(.h)”,并命名为“mylib.h”。 7. 在“mylib.h”文件编写以下代码: ``` #ifndef MYLIB_H #define MYLIB_H #ifdef MYLIB_EXPORTS #define MYLIB_API __declspec(dllexport) #else #define MYLIB_API __declspec(dllimport) #endif MYLIB_API int add(int a, int b); MYLIB_API int sub(int a, int b); #endif ``` 8. 在“解决方案资源管理器”,右键单击“mylib”项目,选择“属性”。 9. 在“属性页”,选择“常规”选项卡,并选择“动态链接库(.dll)”作为“配置类型”。 10. 在“属性页”,选择“C/C++”选项卡,并选择“预处理器”子选项卡。在“预处理器定义”一栏添加“MYLIB_EXPORTS”。 11. 在“属性页”,选择“链接器”选项卡,并选择“常规”子选项卡。在“输出文件”一栏,更改“$(OutDir)$(TargetName)$(TargetExt)”为“$(OutDir)$(TargetName).dll”。 12. 编译并生成项目。在“解决方案资源管理器”,进入“$(项目名称)\$(配置名称)”文件夹,可以找到生成的“$(项目名称).dll文件和“$(项目名称).lib”文件。 13. 在另一个项目使用该 DLL。在“解决方案资源管理器”,右键单击该项目,选择“属性”。 14. 在“属性页”,选择“C/C++”选项卡,并选择“常规”子选项卡。在“附加包含目录”一栏添加 DLL 的头文件路径。 15. 在“属性页”,选择“链接器”选项卡,并选择“常规”子选项卡。在“附加库目录”一栏添加 DLL 的 lib 文件路径。在“附加依赖项”一栏添加“mylib.lib”。 16. 在另一个项目使用 DLL 函数。在代码包含“mylib.h”头文件,然后调用“add”和“sub”函数即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值