c++ Lib Dll及相关头文件关系和怎么操作

本文介绍了如何在C++中创建动态链接库DLL,包括导出类、函数和对象,并展示了如何在另一个项目中静态加载DLL,使用对应的.lib文件和头文件进行调用。通过修改头文件中的导出标识,实现了从DLL中导入类、函数和对象。
摘要由CSDN通过智能技术生成

一、动态库大体使用过程:

(1)DLL中导出类、函数、对象

  1. 创建一个空的Win32 Dynamic-Link Library项目Test

  2. 在项目中添加一个Test.h头文件,该文件的内容如下:

  //导出类

  class __declspec(dllexport) CTest

  {

  ...

  };

  //导出函数

  __declspec(dllexport) void FuncTest();

  //导出对象

  extern __declspec(dllexport) CTest  ObjTest;

  这段代码中通过__declspec(dllexport)导出了类CTest、函数FuncTest和对象ObjTest。在.cpp文件中实现上面的声明与类的定义后,经编译就可以生成一个.dll和.lib文件了。

(2)静态加载DLL

  1. 新建一个Win32 项目。

  2. 将上面编译生成的.lib文件复制到,该项目下。

  3. 在项目中添加一个Test.h(通过该文件实现对DLL的静态加载),该.h文件的内容主要是从DLL的.h文件中复制过来。具体内容如下:

  #pragma comment(lib, "test.lib")

  //导入类

  class __declspec(dllimport) CTest

  ...{

  ...

  };

  //导入函数

  __declspec(dllimport) void FuncTest();

  //

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Visual Studio 中新建一个 DLL 项目,然后添加 OpenCV 库文件头文件。 1. 在项目属性中,选择 Configuration Properties -> General,将 Configuration Type 设置为 Dynamic Library (.dll)。 2. 在项目属性中,选择 Configuration Properties -> C/C++ -> General,将 Additional Include Directories 添加 OpenCV 的 include 文件夹路径。 3. 在项目属性中,选择 Configuration Properties -> Linker -> General,将 Additional Library Directories 添加 OpenCV 的 lib 文件夹路径。 4. 在项目属性中,选择 Configuration Properties -> Linker -> Input,将 Additional Dependencies 添加以下库文件: ``` opencv_core410d.lib opencv_highgui410d.lib ``` 5. 在项目中添加一个新的 C++文件,用于编写 OpenCV 相关的函数。 6. 在该源文件中添加头文件: ```cpp #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> ``` 7. 在该源文件中编写 OpenCV 相关的函数。例如: ```cpp void showImage(const char* filename) { cv::Mat image = cv::imread(filename, cv::IMREAD_COLOR); cv::imshow("Image", image); cv::waitKey(0); } ``` 8. 在该源文件中添加导出函数声明: ```cpp #ifdef __cplusplus extern "C" { #endif __declspec(dllexport) void showImage(const char* filename); #ifdef __cplusplus } #endif ``` 9. 在项目中添加一个新的头文件,用于声明导出函数。 ```cpp #pragma once #ifdef __cplusplus extern "C" { #endif __declspec(dllexport) void showImage(const char* filename); #ifdef __cplusplus } #endif ``` 10. 在该头文件中添加所有需要导出的函数声明。 11. 编译项目并生成 DLL 文件。 12. 可以在其他项目中引用该 DLL 文件,并使用其中的函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值