在VC中使用用DELPHI编写的DLL,声明方式和声明别的DLL没什么差别啊!
只是要注意的是,在Delphi的DLL中的函数要使用通用接口,如(PChar,对应VC中的char *)等,如果用了Delphi特有的数据类型,如String,用VC调用就可能出问题

解决方案 »

  1.   

    不明白.
    你会调用VC写的dll吗?
    一样的.
      

  2.   

    如果使用静态连接的话,将该库的.lib文件考过来,
    在VC下用C重新写一下dll输出的各函数的声明。当然,如果有字符串参数的话一定要用PCHAR类型(在DELPHI)中最后别忘了将.lib加入
    Project Setting->Link
    Object/Library Modules里
      

  3.   

    1,Delphi 的引入库,VC是直接用不得的。两者格式不同。
    倒是可以用impdef.exe 来产生DEF文件,在必要的地方还要作一下改动。
    2,Delphi DLL 的导出函数应该用C方式声明。VC 中自然要对应声明。
    3,查看产生DEF文件内容,看看函数名称与你调用时的声明是不是相同。
    至于,函数导入声明倒是好办。
    类似
    extern"C" __declspec(dllimport)  FName();
    遇到其它问题再具体说。
      

  4.   

    Delphi的lib库与C是可以通用的
    不要用DCU,在工程里设一下就可以了。
    这正是 Borland 的高明之处
      

  5.   

    在DELPHI中并没有提供IMPDEF,IMPLIB这样的工具但CB有。我用IMPLIB产生对应DLL的LIB文件后在VC中加入但VC提示“fatal error LNK1136: invalid or corrupt file”
    可不可以讲的再详细一点!
      

  6.   

    ZLLDJH,  不能用BCB中的implib , 它生成的引入库格式同VC中用的引入库格式不同。
    用BCB中的impdef.exe 产生的DEF 是文本文件,那该没有什么兼容性问题。
      

  7.   

    可以用VC的LIB.exe 生成引入库
    lib /DEF:defname.def
      

  8.   

    好久以前你说:“Delphi的lib库与C是可以通用的,不要用DCU,在工程里设一下就可以了。”能再明白些吗?
      

  9.   

    1。 先将xxx.dll拷贝到VC的Bin目录下,用lib /DEF:xxx.dll ,如系统报告缺少什么文件,你用文件查找找出,拷贝到bin目录下,再用lib /DEF:xxx.dll,可以得到xxx.lib文件。
    2。 用C语言写xxx.h ,将函数原型一一写出,注意要用extern"C" __declspec(dllimport)  FName( var list);3。 将xxx.lib加入需要Project Setting->LinkObject/Library Modules里,注意把xxx.lib 拷贝到你的指定目录下
    4. 在vc中即可用dll中的函数