首页 > 技术文章 > VC2010 利用 def 文件生成 dll 文件的方法 转载

mybuilder 2017-11-03 11:19 原文

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

比如我有下面两个函数:

 

[cpp] view plain copy
 
  1. extern "C" int  _stdcall add(int a, int b)  
  2. {  
  3.     return a + b;  
  4. }  
  5.   
  6. extern "C" int  _stdcall sub(int a, int b)  
  7. {  
  8.     return a - b;  
  9. }  

 

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

[plain] view plain copy
 
  1. LIBRARY add_sub  
  2. EXPORTS  
  3. add  
  4. sub  

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

Module Definition file。

推荐阅读