为什么我用__dllspec(dllexport)做的dll导出函数,用工具查看怎么有怪符号?

解决方案 »

  1.   

    按照C++的命名规范编译生成的目标文件中的函数名是这样的。
    按照C的命名规范是没有怪符号的
    这就是为什么C++和C和目标文件和库不能简单通用的原因,在源码声明中必须用条件编译指定命名规范的方式#
      

  2.   


    编译器生成的名字吧,可在函数的声明及实现前加extern "C"强制编译器生成c方式的函数及变量名字。
      

  3.   

    在你的.DEF 中加入:
      EXPORTS
              YourFunction @1
              YourFunction @2
              ....
      

  4.   

    两种方法都可以
    1、象楼上一样定义 .def文件;
    2、extern "C"即可,这样就不用定义.def文件;
      

  5.   

    ckwangfg(孤独的狼) 
    两种方法要同时使用