function TestDll(xTest : Integer)  : integer;  export; stdcall;
begin
    Result := xTest;
end;
编译是通过的,但在程序中调用dll时就出现"access violation..."这样的错误,
加其他的参数也一样?function TestDll: integer;  export; stdcall;
begin
    Result := xTest;
end;
这样就一切正常。因为dll要给pb调用,所以只能用stdcall。
DX们帮个忙先。

解决方案 »

  1.   

    写出你在PB中调用该DLL中函数的代码看看!
      

  2.   

    PB端不是我做的。我是在delphi下测试出现这样的问题。为什么不能引入参数呢?
    以前没遇过,难道delphi7的dll编写与delphi5有变动?
      

  3.   

    忘了说明,dll里加MSComm控件,这样有影响吗?
      

  4.   

    dll里加MSComm控件,这样有影响吗?当然有了
      

  5.   

    呵呵,大哥,别卖关子啊。有什么影响?可怎么也不会影响引入参数啊。
    我在uses中加入active了。
      

  6.   

    MSComm控件没用过,不过看它的名字是不是微软的东东?如果是的话DELPHI里做DLL时,只要调用COM,就得先调用CoInitiaLize(nil)构造函数初始化,然后再调用coUnInitiaLize析构函数.而MSComm控件是MS的东东,对于DELPHI来说,就是调用了COM,当然要就初化了,就可在DLL里调OLE一样.所以要在你创建MSComm控件之前调用CoInitiaLize(nil)使用完以后再调用coUnInitiaLize.