别人已经把一些函数封装在它的动态库里。我想在自己的程序里调用别人已经写好的函数,请问如何在VC里我的工程里将这个文件包含进来。比如他的动态文件是:test.dll.我的工程里怎么样初始化这个文件。然后再调用。他里面的函数接口我都知道,只要在程序里加载一下,不知道如何加载。

解决方案 »

  1.   

    假设你要调用wahaha这个函数
    HMODULE g_Dll = NULL;
    typedef LONG (__stdcall* WAHAHA)(WCHAR *FileName);
    WAHAHA wahaha;
    g_Dll = LoadLibrary("test.dll");
    wahaha = (WAHAHA)GetProcAddress(g_Dll, "wahaha");
      

  2.   

    可以先用vc的depends工具查看该dll有哪些函数,然后按照楼上的使用:
    LoadLibrary
    GetProcAddress
      

  3.   

    一般没有头文件和参数的话,很麻烦,
    试试用DASM,这个可以看到输出函数,其他就靠你的汇编功底了
      

  4.   

    http://dev.csdn.net/develop/article/13/13362.shtm如果你希望在什么说明文件都没有的情况下调用DLL的函数,那么你不会成功,因为DLL中不包括这样的信息。使用VC的dumpbin(在Bin目录中)或者Dependenps(VC自带工具)或Delphi的TDump,你可以得到DLL中包括哪些函数,但这些函数是什么意义、怎么调用是无法知道的。 
      

  5.   

    你只有dll,没有lib文件吗?如果是,那就要用楼上的那些办法得到函数的信息了。
      

  6.   

    建议最好还是找lib文件吧,因为动态载入可能会出问题,比如用到了线程局部存储。