Delphi如何调用Obj文件里的函数?我用CBuilder6生成做了一个函数,此函数在类外面,代码如下:int test()
{
    return 2005;
}想在Delphi7里调用,Delphi代码如下:var
  Form1: TForm1;
  {$L ..\TestUnit.Obj}
  function test():integer;external;implementation结果编译出N多个错误,错误信息如下:[Error] Unit1.pas(20): Unsatisfied forward or external declaration: 'test'
[Error] Unit1.pas(1243): Unsatisfied forward or external declaration: '@__InitExceptBlockLDTC'
[Error] Unit1.pas(1243): Unsatisfied forward or external declaration: '__ClassCreate'
...
[Fatal Error] call.dpr(7): Could not compile used unit 'Unit1.pas'请大虾米帮帮我!谢谢!汗!...

解决方案 »

  1.   

    檢查聲明格式, 還有你的 函數名, 大小寫對應, 看delphi部分, 應該沒問題
      

  2.   

    楼主都比爱基斯摩人强
    楼主是否传说中现代人类进化后的new new person?
      

  3.   

    最 B4 的就是你们这种冰天雪地裸体跪求的淫~~你还不够诚恳~~ 要冰天雪地裸体腾空三周半转体180度xxxx.....然后跪求
      

  4.   

    我只要写一行{$L ..\TestUnit.Obj}马上出错了,不是大小写的问题,
    听网上文章说CBuilder写的函数里不许有C++类,RTL,Windows API相关东西,否则Delphi链接时候就出错,所以评价说Delphi调用CB的Obj文件似乎没有太大的使用价值,还建议了用COM/Dll/OLE方式.
      

  5.   

    哈哈!现在已经编译通过了{$L ..\Unit2.Obj},原来文件名写错了,低级错误!!
    不过在这里又出错了:
      function test():integer;external;
    错误是:
    [Error] Unit1.pas(23): Unsatisfied forward or external declaration: 'test'
    [Fatal Error] call.dpr(7): Could not compile used unit 'Unit1.pas'
      

  6.   

    有个叫GraphicEx组件使用了obj文件,也是用的{$L jcomapi.obj}这种形式,可以参考一下
      

  7.   

    不知道GraphicEx怎么编译通过的,我把其中的代码复制到另外一个工程中编译就出错了,是不是Delphi7已经不再支持$L编译指示符了...??