rt,能否给些例子呢?谢谢

解决方案 »

  1.   

    静态调用DLL的方法: 
    ---- 1.通常我们在调用DLL时所需的DLL文件必须位于以下三个目录之一: 
    ---- (1)Windows的系统目录:\windows\system; ---- (2)DOS中path所指出的任何目录; ---- (3)程序所在的目录; ---- 同时应注意管理好你的.lib文件和.h和文件 ---- 2.建立一个工程,简单起见可建立一个控制台应用程序. ---- 3.在工程中引入a.lib: ---- (1)如果你的a.lib放在VC标准的LIB文件夹中.    单击Project- >Project Settings...
       在link选卡的object/library modules中加上a.lib即可---- (2)如果你的a.lib不是放在VC标准的LIB文件夹中 
       单击Project- >Add to Project- >files...
       找到a.lib文件,按OK
    < pre >
    4.//------------------------
      //call_a.cpp
      #include< stdio.h >
      #include "c:/a/a.h"
      void main(void)
      { int c=0; c=add(1,2);
    printf("1+2=%d",c);
      }
    //本程序在VC5.0下调试通过VC中DLL的动态调用在VC中调用动态链接库时,类似于Delphi中运行时调用DLL的方法。也要调用到Windows的API函数LoadLibrary,GetProcAddress等。此方法对于调用其它语言和VC编译的DLL均适用。假定DLL中包括一个函数:int yanzheng(CString input,char* zcm) 首先在欲调用DLL函数的cpp文件前部先声明函数指针,定义函数类型:typedef int (* _YANZHENG)(CString,char* zcm); 然后定义如下变量∶HINSTANCE hLibrary;
      _YANZHENG yanzheng; 在调用DLL处加入如下语句进行DLL装载: hLibrary=LoadLibrary("zcdll.dll");
      yanzheng=(_YANZHENG)GetProcAddress(hLibrary,"yanzheng");
      shuchu= (*yanzheng)(shuru,zcm);
      FreeLibrary(hLibrary); 
      

  2.   

    定义函数指针
    装载DLL
    获取DLL中接口函数地址
      

  3.   

    楼上说得已经很详细了,不过最好有个判断
    yanzheng=(_YANZHENG)GetProcAddress(hLibrary,"yanzheng");
    if(yanzheng !=(_YANZHENG)NULL)
        shuchu = (*yanzheng)(shuru, zcm);
      

  4.   

    为什么总是yanzheng !=(ptr)NULL呢?是不是在动态连接的时候,我的动态连接库要放在什么固定的位置呢?