首先c语言在开始要加上

#ifdef __cplusplus

extern "C" {

#endif

…被导出的方法名称

#ifdef __cplusplus

}

#endif

不然系统会将起当做c++,转成的dll中的方法名称会被转义。在实现的方法名称前面加上__declspec(dllexport)


1.    Gcc:gcc –shared -o xxxx.dll xxxx.c 可以直接将.c文件转成dll文件。在实际引用中,我是将所有的#include都是放在.c文件中的,上述的注意代码也是放在.c中的,他的头文件是直接抛弃掉了。

2.    Vc创建一个c++的项目,文件-新建-新建项目-其他语言-Visual C++  - Win32 控制台应用程序;勾选DLL和导出符号,.c需要修改成.cpp,右键-属性-预编译头-不使用预编译头,右击项目“重新生成”。

1实地使用过确认可以使用,2未尝试过但是在使用c++转出dll是没有问题的


在导出过程中我们可以使用vs自带一个工具来查询生成的dll中有那些方法,例如:

 

Vs安装路径下:C:\vs 2012\VC\bin\dumpbin.exe,可能会报一个缺少“mspdb110.dll”文件的错误,直接将安装路径下:C:\vs 2012\Common7\IDE下面的该文件复制粘贴到C:\vs 2012\VC\bin\下面。

用法是,先cd到dumpbin的路径下,dumpbin –exports  xxxx.dll

最新文章

  1. iOS之使用模拟器报错:resource fork, Finder information, or similar detritus not allowed
  2. java开发环境搭建
  3. PAT 乙级 1005. 继续(3n+1)猜想 (25)
  4. 关于全局唯一ID生成方法
  5. htacess 上传
  6. hdoj-2025
  7. 100个直接可以拿来用的JavaScript实用功能代码片段(转载)
  8. oracle11g 创建用户并授权
  9. WAMP集成环境更改web根目录
  10. 列表:一个打了激素的数组2 - 零基础入门学习Python011
  11. (原)前端知识杂烩(css系列)
  12. 理解Annotation
  13. 使用.NetCore 控制台演示 熔断 降级(polly)
  14. Linux下源码安装并配置Nginx
  15. 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作
  16. Unity 灯光系统详解
  17. oracle数据库连接不上
  18. A标签href属性详解--记录八
  19. mondrian4 kylin saiku 整合踩坑记录
  20. C#String地址、拼接性能学习

热门文章

  1. 模板——Treap实现名次树
  2. php 变量名前加一个下划线含义
  3. BoundsChecker下载
  4. 2019年第二阶段我要变强个人训练赛第八场 B.序列(seq)
  5. java 菜单
  6. linux 手动睡眠
  7. jQuery 工具类函数-URL操作函数
  8. HDU6602 Longest Subarray hdu多校第二场 线段树
  9. LDO
  10. 缓存, 队列(Redis,RabbitMQ)