vs2013 打包并调用dll(opencv,多函数复杂情况下)

本文详细介绍如何使用函数方式打包DLL文件,并提供了完整的步骤指导,包括配置环境、复制代码、生成DLL及LIB文件等。此外,还介绍了如何在一个新的C++项目中调用这些DLL文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/sinat_33690776/article/details/68951774

首先,先推荐两个具有高质量的博客,先把这两个案例做成功了,我这边的案例也差不多了。

  1. 使用类进行打包dll:http://blog.youkuaiyun.com/slm1130/article/details/53489221
  2. 使用函数进行打包dll:http://blog.youkuaiyun.com/hit2015spring/article/details/52624985

博主认为使用函数进行打包的方法更加简单。为避免前两个博主的文章消失,我再说一些我的这边的过程。主要说使用函数打包的方法,响应题目。
使用函数打包:
1. 这个项目的第一件事情:创建无导出符号的dll空项目;
2. 然后就是将之前写的函数代码复制进去,再去配置opencv的环境,错误都解决好了如下图。
dllmain.cpp不用管,将之前写的函数代码复制到新建的项目cpp中,图片中Imgset.cpp是我的项目中新加的cpp文件,这就是复杂的地方,但是知道引用现有cpp文件就可以了,没有影响。
复制代码过程:dllmain.cpp不用管,将之前写的函数代码复制到新建的项目cpp中,图片中Imgset.cpp是我的项目中新加的cpp文件,这就是复杂的地方,但是仅仅引用现有cpp文件就可以了,没有影响。
注意:

如果之前的函数有要调用的相对路径的文件的话,在这里不用复制到这个项目的相对路径下,而是复制到调用这个dll的项目下去使用;
记得在需要调用的函数那里加上__declspec(dllexport) void Bleeding()中的__declspec(dllexport) 。

3.然后生成,即可得到dll和lib文件;


调用dll:

1. 新建项目C++/Win32控制台应用程序,命名。选择没有预编译头。
2. 调用dll内的类函数。

    // test_Bleed.cpp : 定义控制台应用程序的入口点。
    //
    #include "stdafx.h"
    #include <stdio.h>    
    #include <iostream>  
    using namespace std;

    #pragma comment(lib, "Bleed.lib")        //调用dll文件时候必须用到的    
    void Bleeding();          //对刚才写好的处理函数进行声明    
    //主函数    
    int main()
    {
        Bleeding();
        return 0;
    }
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3.生成解决方案,现在肯定是很多错误;
4.将dll和lib文件拷贝到debug文件夹下,与exe文件是同一个文件夹,另外,之前dll引用的文件也都复制到现在这个项目的与cpp同一文件夹下;
5.右键项目名字选择属性,->配置属性->VC++目录->常规-库目录,选择你放置了lib的debug文件夹。
->配置属性->链接器-输入-附加依赖项-编辑加入lib的文件名(全名包含后缀)-确认
6.重新生成,运行即可

然后就成功了,博主是一般看到网上没有一些好的资料的时候,就会写一些东西到csdn上来,一般都是挺不错的资料,我觉得。觉得同样感觉到不错的朋友可以点一波关注~

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/sinat_33690776/article/details/68951774

首先,先推荐两个具有高质量的博客,先把这两个案例做成功了,我这边的案例也差不多了。

  1. 使用类进行打包dll:http://blog.youkuaiyun.com/slm1130/article/details/53489221
  2. 使用函数进行打包dll:http://blog.youkuaiyun.com/hit2015spring/article/details/52624985

博主认为使用函数进行打包的方法更加简单。为避免前两个博主的文章消失,我再说一些我的这边的过程。主要说使用函数打包的方法,响应题目。
使用函数打包:
1. 这个项目的第一件事情:创建无导出符号的dll空项目;
2. 然后就是将之前写的函数代码复制进去,再去配置opencv的环境,错误都解决好了如下图。
dllmain.cpp不用管,将之前写的函数代码复制到新建的项目cpp中,图片中Imgset.cpp是我的项目中新加的cpp文件,这就是复杂的地方,但是知道引用现有cpp文件就可以了,没有影响。
复制代码过程:dllmain.cpp不用管,将之前写的函数代码复制到新建的项目cpp中,图片中Imgset.cpp是我的项目中新加的cpp文件,这就是复杂的地方,但是仅仅引用现有cpp文件就可以了,没有影响。
注意:

如果之前的函数有要调用的相对路径的文件的话,在这里不用复制到这个项目的相对路径下,而是复制到调用这个dll的项目下去使用;
记得在需要调用的函数那里加上__declspec(dllexport) void Bleeding()中的__declspec(dllexport) 。

3.然后生成,即可得到dll和lib文件;


调用dll:

1. 新建项目C++/Win32控制台应用程序,命名。选择没有预编译头。
2. 调用dll内的类函数。

    // test_Bleed.cpp : 定义控制台应用程序的入口点。
    //
    #include "stdafx.h"
    #include <stdio.h>    
    #include <iostream>  
    using namespace std;

    #pragma comment(lib, "Bleed.lib")        //调用dll文件时候必须用到的    
    void Bleeding();          //对刚才写好的处理函数进行声明    
    //主函数    
    int main()
    {
        Bleeding();
        return 0;
    }
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3.生成解决方案,现在肯定是很多错误;
4.将dll和lib文件拷贝到debug文件夹下,与exe文件是同一个文件夹,另外,之前dll引用的文件也都复制到现在这个项目的与cpp同一文件夹下;
5.右键项目名字选择属性,->配置属性->VC++目录->常规-库目录,选择你放置了lib的debug文件夹。
->配置属性->链接器-输入-附加依赖项-编辑加入lib的文件名(全名包含后缀)-确认
6.重新生成,运行即可

然后就成功了,博主是一般看到网上没有一些好的资料的时候,就会写一些东西到csdn上来,一般都是挺不错的资料,我觉得。觉得同样感觉到不错的朋友可以点一波关注~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值