小弟现在想知道DLL文件在导出时采用extern "C"与def这两种方式进行比较。哪一种有优势,你在实践中偏向于使用哪一种,原因是什么?如果DLL中某些函数需要重载的话,你会选用哪一种方式,为什么?不用另一种方式如何解决重载问题?
比如,我就习惯用extern "C",讨厌def文件的方式, 可以解决重载问题么?如何解决?
在线等

解决方案 »

  1.   

    MAKEFILE的写法可以去下载个bakefile来用用,可以自动(基本上)生成各种编译器各种平台的各种不同选项的makefile,省得自己写了。
    地址http://bakefile.sourceforge.net/
    wxwindows好像现在就是用的他。
      

  2.   

    我喜欢用def文件,
    原因:
    1、用def文件可以防止编译器更改导出函数的函数名
    2、可以控制导出函数在动态库中的位置第二点尤其重要,比如你要增加一个动态库的导出函数,
    但是你调用的时候是动态的用loadlibrary依据函数的位置加载,
    如果不用def文件,你一增加函数,就完蛋了。