博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++静态库中使用_declspec(dllexport) 不能导出函数的问题
阅读量:5911 次
发布时间:2019-06-19

本文共 656 字,大约阅读时间需要 2 分钟。

在某项目中,有一些静态库,这些静态库中有类型命名的函数GET_XXX。在一次项目结构调整的时候,我想将调用这静态库的代码编译成DLL,并且将这些Get函数导出,我就直接就这些函数前面添加了_declspec(dllexport),

然后代码结构就成为:

静态库A: 包括很多 _declspec(dllexport) GET_XXX 函数。

动态库B:未直接调用 GET_XXX

调用B的应用程序C:动态Load动态库B,然后使用GetProcAddress获取函数地址后使用。

 

但是很不幸编译出来的中一直没有这些函数。

   百思不得其解,最后在网上发现下面的信息(from:):

When you build a DLL from component libraries (.lib files) that have functions declared with _declspec(dllexport) to export them from the DLL, the functions aren't exported or even included in the DLL.

解决方案:

1、DEF文件或者是在LInk时添加/export:func.

2、在其它地方强引用。

3、把GET等函数所在源码直接放到dll代码里编译。

对于我的工程,1、2不适合,所以我使用了3.

转载于:https://www.cnblogs.com/k1988/archive/2013/02/16/2913534.html

你可能感兴趣的文章
Python基础(1)--Python编程习惯与特点
查看>>
图解 & 深入浅出Java初始化与清理:构造器必知必会
查看>>
Solaris10 安装
查看>>
hdu 1166 敌兵布阵
查看>>
hdu 1316 How Many Fibs?
查看>>
基础知识__WebService
查看>>
整合大量开源库项目(六)ListView动画,Activity"抽象化",顺便提一提”抽象类“And"接口"...
查看>>
集成Diagram Viewer跟踪流程
查看>>
PostgreSQL stream repication can implement between FreeBSD and CentOS
查看>>
innodb中大字段的限制
查看>>
mongoDB 2.0.0 shard implemention with noauth=true
查看>>
三种对象传参和ModelDriven的原理
查看>>
hdu 1874
查看>>
在JPEG图片中嵌入HTML
查看>>
细说setTimeout/setImmediate/process.nextTick的区别
查看>>
后端的一些经验与心得
查看>>
(译) 函数式 JS #1:简介
查看>>
Android App性能优化技能,看这篇就够了
查看>>
componentOptions配置选项的作用和用法
查看>>
webpack 4.x一起学习(二)
查看>>