《WINDOWS核心编程》里使用DLL的办法是需要包含DLL的头文件,而很多时候看到使用DLL的方法是#pragma comment(lib,"MyDll.lib")这样的,这怎么回事?

解决方案 »

  1.   

    头文件可有可无,如果有,使用者就不需要在应用的工程里重新编写DLL的函数原型。
    #pragma comment( "comment-type" [, commentstring] ),这是导入DLL的描述记录文件,即LIB文件,让编译环境知道通过谁、如何去链接DLL。
      

  2.   

    这只是其中一种方法,静态的调用动态库,
    头文件是函数的声明,和你的代码中的头文件一件,lib是导入库,告诉你实现代码的地址在哪,有可能在一个同名dll中,也有可能是在他自己内部(静态库)还有一种是动态加载dll,找到函数入口地址调用。
      

  3.   

    你说的是静态调用,
    LoadLibrary+GetProcAddress属于动态加载
      

  4.   

    没涉及到DLL的动态连接,是说的静态连接。有些静态连接没有包含头文件。