请问如何编写动态链接库,导出函数时不用在.DEF文件中注明导出函数的名称,要注意哪些问题,还要写明哪些信息,能不能给一个例子!!我用了很多方法,就是不行,一定要在.def文件中列出导出函数名,不知我在这方面还有什么盲点?(我是想用Loadlibrary()和GetProcAddress()函数来获得函数地址进行调用)也可以发信给我,我的信箱:[email protected]

解决方案 »

  1.   

    在每个需要导出的函数加:
    __declspec( dllexport ) void func();
      

  2.   

    我有示例工程和文章,包括导出函数,还有不用lib就可以隐式调用的,还有调用dll资源的。要的话给我写信通知我
    [email protected]
    (现在csdn好像很慢)再有就是别忘了给分哦 ^-^
      

  3.   

    Zark(金陵五月) :我加了,但用Loadlibrary()和GetProcAddress()函数调用时,依然找不到,但若在.def 文件中加入列表时,就可以了。
      

  4.   

    你是在哪里调用,是VC吗如果是__declspec(dllexport)应该没有问题,VB之类基本上只有用def文件输出+ _stdcall ,因为函数名加了C++修饰符
      

  5.   

    use depend.exe to check functions which you called in your dynamic link library
      

  6.   

    在def文件里必须要声明导出函数名的
    不然只能静态连接
    而不能用Loadlibrary动态调用
      

  7.   

    问题在编译后的函数名上,__declspec(dllexport)输出的函数名上加上了修饰,而用*.def将严格按照其中的函数名输出。这个用Depends看一下就可以明白。
    如果用
    extern "C" {
      // 函数定义
    }
    将函数定义扩起来,这样编以后的函数名将没有修饰,按原名输出。