我在MFC程序中加载DLL时怎么出错了
我在主对话框中用#import "res\AES.dll"后,报错:annot open type library file: 'res\AES.dll': 加载类型库/DLL 时出错。(AES.DLL是从网上找的)
而我用同样的方法加载#import "res\msado15.dll"就没错,这是怎么回事啊

解决方案 »

  1.   

    使用 dll 的方法不是使用 import,
    而 #import "res\msado15.dll" 实际上是使用其中的 type library 资源。如果你拥有 dll 的 .h 和 .lib 文件,那么使用 #pragma comment(lib, "aes.lib") 就可以了。如果你没有相应的 .lib 文件,那么应该使用 LoadLibrary 来使用 dll。
      

  2.   

    "type library file" 的意思是,dll 中包含 类型为 "TYPELIB" 的资源,这个资源用来描述接口,在 COM 插件这方面要用到这些。
      

  3.   

    那我应该怎么用,我只有一个AES.DLL
      

  4.   

    如果只有一个 AES.DLL,那你应该知道 AES.dll 是用来干什么的吧。如果是要使用其中的定义函数或者要使用其中的资源,那么应该使用 LoadLibrary
      

  5.   

    参考:
    typedef VOID (*MYPROC)(LPTSTR); 
    HINSTANCE hinstLib = LoadLibrary("myputs"); 
    ProcAdd = (MYPROC) GetProcAddress(hinstLib, "myPuts");