C语言编译成dll

  • 格式:pdf
  • 大小:56.42 KB
  • 文档页数:1

C语⾔编译成dll

⾸先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:\vs2012\Common7\IDE下⾯的该⽂件复制粘贴到C:\vs 2012\VC\bin\下⾯。

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