我在网上下载了一个例子(包括主工程和DLL工程),我很奇怪,在主程序中既没有用LoadLibray()来加载DLL,也没有用"隐式"的方式来加载那个DLL,主工程中只是包含了DLL的头文件,结果就可以使用DLL中的函数了.
  我非常不解这到底是怎么回事???请高手们帮我分析下.
  注:不过我看他主工程左册的文件列表里有一个奇怪的文件(无后缀),但名字和DLL工程名相同,不知道是怎么加进去的,我想一定是这里起了作用???

解决方案 »

  1.   

    使用头文件就是使用dll的一个方式!那个同dll工程名字相同的是设置工程连接用的,具体方法可以单击Project-〉dependancies,在弹出的对话框中选择,如果A设置了连接B工程,编译A工程时候,必须首先编译B工程,然后再编译A工程,如同上面的首先编译Dll工程,然后编译使用Dll工程(主工程)。
      

  2.   

    隐式调用
    1.包含.h文件
    2.Probject->setting->link
     .lib文件
      

  3.   

    那个文件应该是LIB类型的文件,属于静态加载
      

  4.   

    那个不是静态的,确实有DLL文件生成.我想问下 Tolirry(无敌),如果设置了工程依赖,这样的话,就不需要显示或者隐式的加载DLL了吗?只需要包含一下DLL工程中的头文件就可以使用DLL中的函数了吗???是这样吗??
      

  5.   

    楼上的兄弟
    主工程中只有一处有#pragma#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
    这个工程并不是用#pragma的方式来加载DLL的,所以我很奇怪他到底是怎么加载的??
      

  6.   

    我看了一下,主工程并不是MFC工程,是个WIN32 API工程,我自己也写了一个相同的WIN32工程,发现好象确实只包含头文件的话就可以使用DLL中的函数,并不需要在主工程中"显示"或者"隐式"的加载DLL.
      

  7.   

    头文件没有用#pragma 包含lib文件么?