VC2010利用def 文件生成dll文件的方法

手册/FAQ (363) 2016-04-22 14:58:06

最近有个需求,要生成一个dll 文件,文件中的函数都是采用 stdcall 函数调用约定,但是不希望函数名被修饰(add 被修饰成 add@8)。这时就要用def 文件了。

比如我有下面两个函数:

  • extern "C" int  _stdcall add(int a, int b)  
  • {  
  •     return a + b;  
  • }  
  •   
  • extern "C" int  _stdcall sub(int a, int b)  
  • {  
  •     return a - b;  
  • }  

def 文件(我命名为dll.def)可以这样写:

  • LIBRARY add_sub  
  • EXPORTS  
  • add  
  • sub  

VC6 来编译的话很简单,只要把 dll.def 文件加入到工程里就可以了,可是到了vs2010 ,发现这样做竟然没用,生成的 dll 依然是啥都没导出来。百度了一下,发现需要自己指定Module Definition file。

VC2010利用def 文件生成dll文件的方法

THE END