在编译DLL的时候,编译器会自动生成一个LIB.

解决方案 »

  1.   

    如果只有DLL, 没有源代码, 考虑使用dumpbin得到原型, 然后使用LoadLibrary, GetProcAddress动态调用.
      

  2.   

    那就需要一个接口描述文件,否则不知道调用Dll里函数时用什么参数!
      

  3.   

    dll是第三方提供的,是用c++builder作的,我现在是vc,据对方说vc有工具可以从dll编译出连接用的lib,不知道是怎么用的?
      

  4.   

    要得到 vc 的 lib 文件,如果没有 .h 文件,基本上没戏。微软的网站有一片文章专门讲这个问题。
    如果要 c++ builder 的 lib 文件,到是有个工具:implib,可惜生成的 lib 文件 vc 不能用。
      

  5.   

    你动态调用!可以的!
    我这样做过,很好用!HINSTANCE hInst=NULL;
    hInst=LoadLibrary("YourDll.dll");
    if(hInst==NULL)
    {
       return ;
    }
    YourFun=GetProcAddress(hInst,"YourFun");
    ....
    ok
    !FreeLibrary(hInst);
      

  6.   

    呵呵,我知道
    =============
    lib /machine ix86 /out dllname.lib
      

  7.   

    对了,前面的命令有误,请自更正,请包涵:
    lib /def: xxx.def /machine: ix86 /out: xxx.lib必须要有def文件,赞同webber84(糕鱼昏)
      

  8.   

    谢谢各位,我觉得值的加分了,and I will. :-)动态调用是我最后的选择。现在我想知道的是静态的。函数原型都有,不知道BCB生成的dll是否可行。cadinfo(无语清风) 的方法我试了,结果如下:没有def,我自己编了个:hisdll.def
    LIBRUARY "HISDLL"
    DESCRIPTION 'HIS dll'
    EXPORTS
    Startup
    Cleanup
    然后执行:lib /def:hisdll.def /machine:ix86 /out:hisdll.lib
    有提示:
    hisdll.def : warning LNK4017: LIBRUARY statement not supported for the target platform; ignored
    并生成了hisdll.lib 和 hisdll.exp文件我用hisdll.lib连接到工程中,make通过了,但是执行不通过,提示“无法定位程序输入点”怎么回事?怎么处理?谢谢。