我vc里是这样用DLL的,起码得两个文件齐全,.lib 和 .dll 或 .dll 和.h才能
用。
  但不知道别人只给我一个.dll,我是否能把它用起来,比如说这个.dll里有个自定义函数,我想调用它。
  高手指点

解决方案 »

  1.   

    不怕麻烦的话就找工具得到Dll中的函数名
    然后一个一个试, 嘿嘿
      

  2.   

    首先,要知道你想要call的函数,
    call 一个函数有条件
    1: 函数名字或地址
    2: 参数列表和返回值这都要反汇编工作,还要知道 PE 的格式, (export table)
      

  3.   

    可以,先用typedef定义函数,须与函数申明一致,再显式加载动态库,在得到函数地址,就可以用了
      

  4.   

    其实要做到可以调用,非常简单,但是每个参数的意义就要靠你自己捉摸了。从两个方向解决
    1, 自己构造.h文件
    你可以用反汇编工具看一下,确认调用方式和参数个数,很快就可以写出一个头文件。2,自己构造.lib文件
    Borland有一个lib工具,可以从dll产生lib文件。
      

  5.   

    如果知道dll函數的聲明,就可以這樣調用:
    例如: DLL中有一個 int Summary(int);的函數
    //定義了一個指向int型返回值且帶有一個int型參數的函數指針類型 
    (也就是定義一個與所調用函數聲明一模一個的函數指針,指針變量名任意)
    typedef     int (*SUMMARY)(int);  
    HINSTANCE hInst = ::LoadLibrary("*.dll");  //動態裝載DLL 
    SUMMARY SummaryFun=NULL; 
    //GetProAddress() 取得要使用函數的地址,需要兩個參數: DLL句柄和函數名,  如"Summary"為DLL中的函數 
    SummaryFun= (SUMMARY) GetProAddress(hInst,"Summary");  
    //if(Summary)     要判斷是否返回成功 
    //通過函數指針調用該函數
    int nSum=SummaryFun(10); 
      

  6.   

    為什麼我這裡既要.h 又要 .lib 當然還要 .dll呢?
      

  7.   

    我当然是知道dll里有自定义那些函数,应为是我自己编的。
      我的焦点是在不用.h..lib辅助下,有没办法用我产生的一个dll;
      好象是可以的,但我没是过。
      我看到这样一条指令
      #import "../.dll"  .....
       好象能达到我的意思,它是欲编译指令,在编译前加载.dll然后自动分离出
    所需的头文件,具体用发我不会
      to Frank_Xu() 你的方法我市一市,好象说的有点行
      

  8.   

    等待你的结果!Does a good farmer neglect a crop he has planted?
    Does a good teacher overlook even the most humble student?
    Does a good father allow a single child to starve?
    Does a good programmer refuse to maintain his code?
                  -- Geoffrey James, "The Tao of Programming"