郁闷的一塌糊涂,原来声明如下int32_t __stdcall ViewATSE(void);
VB 声明如下
  Private Declare Function ViewATSE Lib "D:\VBBIN\ViewATSE.dll" () As LongDELPHI 声明
unit Unit2;interface
 function ViewAtse:Integer  ;stdcall ;external'D:\Bin\ViewATSE.dll'
implementationend.
我然后引用UNIT2
调用VIEWATSE,报错http://hi.csdn.net/attachment/201201/13/103174_1326419729geE6.png

解决方案 »

  1.   

    function ViewAtse:Integer ;stdcall;implementationfunction ViewAtse:Integer ;stdcall; external'D:\Bin\ViewATSE.dll'
     name 'ViewAtse';
      

  2.   


    这样还是不可以,但是按照下面声明就可以了function ViewAtse:Integer  ;stdcall ;external'D:\Bin\ViewATSE.dll' name 'ViewATSE'
      

  3.   

    我不用NAME写别名,也可以,看样子是大小写的问题
      

  4.   

    D对大小写是不敏感的function ViewAtse:Integer;stdcall external 'D:\Bin\ViewATSE.dll';
      

  5.   

    C++编译时会破坏函数名的,可通过2种方法解决:
    方法1. C++的声明改成 extern "C" int32_t __stdcall ViewATSE(void);
    方法2. Delphi中的声明改成 function ViewAtse:Integer  ;stdcall ;external'D:\Bin\ViewATSE.dll' name '@ViewATSE$s'