在一个工程中加载DLL,用dll编译连结时生成的.h和.lib文件,可以直接调用.dll中的函数.可是我的DLL工程是WIN32的那种DLL工程,不是MFC的,所以编译后DEBUG中没有生成相应的LIB文件,那这种情况我想在别的工程中加载我这个DLL,我应该怎么做啊?谢谢大家帮我解答~急

解决方案 »

  1.   

    用LoadLibrary("123.dll");
    然后动态调用dll中你所提供的函数.
      

  2.   

    不是MFC的DLL就没有LIB文件吗?不可能吧,应该能生成LIB文件的啊
      

  3.   

    真的没生成
    要不你去试试,真的没有
    用LoadLibrary("123.dll");就可以了吗?不用在工程中设置什么了吗?
      

  4.   

    HANDLE h = LoadLibrary("123.dll");GetProcAddress(h,"导出函数名");
      

  5.   

    LoadLibrary("123.dll");要加在哪?
    OnInitDialog()里面吗?
      

  6.   

    哪儿都可以!一般OnInitDialog()GetProcAddress(h,"导出函数名");只要这个h有效就可以
      

  7.   

    GetProcAddress(h,"导出函数名");中的导出函数名是什么?我做的那个DLL是我建立的一个WIN32的空白DLL工程,只是把以前的一个EXE的工程的文件全加载进来,做成的一个DLL.这种情况我从另一个DLG工程中调用DDL工程中的函数好象没什么效果,跟没执行一样,大家说这是怎么回事啊?
      

  8.   

    如果真的没有LIB文件确实可以用LoadLibrary()来隐式加载DLL,过程如下:先用LoadLibrary()或是LoadLibraryEx()来将DLL加入内存中,它返回一个HMODULE 句柄,然后用GetProcAddress()来定位你要调用的函数,它要两个参数,前一个参数就是返回的HMODULE句柄,后一个参数是你要调用的DLL中的函数名,它返回你要调用的函数的地址。然后,用这个地址来进行调用。就不能用你的函数名了。另外,WIN32下的DLL是会生成LIB文件的,你可以试试手工链接。
      

  9.   

    不生成.lib的两种情况
     1) dll工程有语法错误,根本没有通过编译,即不仅没有生成.lib,.dll也没生成
     2) 没有导出任何函数或类