手头有两个文件,一个DLL,一个头文件,两者相对应
令我不解的是, 虽然我看到了该DLL的导入库(猜测的,因为没有看到DEF文件)
但是,冰没有看到__declspec (dllexport)的使用
那该DLL中的函数是如何导出来的, 当然了,这是一个项目里的文件,
这些函数工作正常, 只是我不了解其中的原理.谁能指点一二?

解决方案 »

  1.   

    通过__declspec (dllexport)可以导出
    通过 .DEF 文件也可以导出函数,有头文件后是一样用的
      

  2.   

    有些可能是被宏封装了
    例如 MFC 的动态库中可以用 AFX_EXT 宏导出
    而 AFX_EXT 宏本身实际上就是 __declspec(dllexport)
      

  3.   

    在导入动态库时只需要 __declspec(dllimport),不需要 __declspec(dllexport)
      

  4.   

    就是没有发现__declspec(dllexport)以及AFX_EXT 等东西
      

  5.   

    那该DLL中的函数是如何导出来的并不重要,关键是能不用
    人家写完了,为什么要把DEF文件给你. 只看到DLL,LIB ,还有H 文件很正常呀
      

  6.   

    头文件可以手动生成,因此你不一定在人家已经生成的DLL和H中发现__declspec(dllexport)
      

  7.   

    只是想探究一下原理难道DLL还有第三种调用方式?
      

  8.   

    我知道有两种方式可以从DLL中导出函数
    1.DEF文件
    2.__declspec (dllexport)和__declspec (dllimport)
    现在的问题是我在该工程里没有看到对上面两种方式中任何一种的运用.
    在程序里就可以使用DLL中的函数了
    所以,想问一问是不是存在这两种方式以外的函数导出方法?
      

  9.   

    有,就是AFX_EXT宏导出,总共有3中DLL的导出方法,而且这种导出的程序语句,在Win32模式下要自己写导出语句,而MFC模式下不需要写,由向导自动生成!
      

  10.   

    有,就是AFX_EXT宏导出,总共有3中DLL的导出方法,而且这种导出的程序语句,在Win32模式下要自己写导出语句,
    而MFC模式下不需要写,由向导自动生成!
    ///////////////////////////
    没有猜错的话, AFX_EXT宏是指AFX_EXT_CLASS
    其实AFX_EXT_CLASS也就是
    __declspec (dllexport)或者__declspec (dllimport)
    我看了没有AFX_EXT_CLASS