HINSTANCE hDllInst = LoadLibrary(“动态库名”);
if ( hDllInst )
{
typedef DWORD (函数类型 *RSP)(同函数参数);
RSP HideProc = NULL ;
HideProc = (RSP)GetProcAddress( hDllInst, “函数名”);
if ( HideProc )
{
HideProc(参数);//函数调用
}
FreeLibrary(hDllInst);
}

解决方案 »

  1.   

    动态使用DLL有个前提条件,必须知道DLL中的待引用函数名,配置必须有静态使用中的B项。
    使用如下:
    HINSTANCE       g_hSmppDll       = NULL;
    typedef UINT  MyFunc(char *);       //DLL中的函数
    MyFunc  *pMyFunc=NULL;
    g_hSmppDll =LoadLibrary("MyDll.dll"); 
    ASSERT(g_hSmppDll );
    pMyFunc=(MyFunc *)(GetProcAddress( g_hSmppDll, "MyFunc"));//引号中为DLL中的函数名
    (*pMyFunc) ("ok");    在于一个*.lib文件。在编译动态链接库时,VC++会为动态链接库创建一个引入
    库(IMPORT LIB),即*.lib。库文件中只包含一些指向外部DLL库的函数索引指针,而
    不是真正的代码,用于解析DLL的加载地址,并定义动态链接库和用于声明的头文件
    的完全路径名。然后为引入库定义一个头文件,用来声明DLL中的函数。开发人员在引用时,
    要配置如下:
    A.在Project|Setting中的Link标签页的Object/library Modules 中加入*.lib
    B.在Tools|Options中的Directories 标签页中的 Show directories for:下面的
      Include files 中增加Myclass.h的路径;Lib files中增加*.lib 和*.dll路径。
    这是一种常用的方法。实际上,应用程序就是通过这种方式来访问Windows 的API函数。
    WINDOWS为其内核动态链接库生成引入库并提供了头文件。应用程序在编译时将引入
    库的信息带入可执行文件中,运行时通过引入库信息访问API函数。