用C++Builder本身来调用是可以的,但在delphi中调用就报错:
错误地link main.exe 到xxx.dll.function
可dll和main.exe在同一目录
怀疑是在C++Builder中编译dll时设置不对,哪位高手指点一下,不胜感激。

解决方案 »

  1.   

    可能是你的调用方式的问题Directive Parameter order Clean-up Passes parameters in registers?
    ------------------------------------------------------------------
    register Left-to-right Routine Yes
    pascal Left-to-right Routine No
    cdecl Right-to-left Caller No
    stdcall Right-to-left Routine No
    safecall Right-to-left Routine No
      

  2.   

    不是,我把它改为另一个VC的dll,就可以了。而且这个函数是没参数的。
      

  3.   

    那可能和Dll的生成有关, VC的Dll生成和CB的不同吧
      

  4.   

    函数是没参数的  cdecl Right-to-left Caller No 
    用它看看,只有它的清除堆栈的方式不一样。
      

  5.   

    根据你说的VC下可以运行,诚意建议你改用stdcall尝试一下,
    怀疑本来就是stl写的,这样可能好一点
      

  6.   

    用所有的调用方法包括stdcall试过了,都不行。
    dll里:
    int __stdcall __export test();调用:
    function test:integer;stdcall;extern 'testdll.dll';
    错在哪?