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