请教关于调用DLL出错问题。

                            
请教各位大侠:   
  我调用一VC写的DLL出现如下错误:  
  Project   Project14.exe   raised   exception   class   EAccessViolation   with   message   'Access   violation   at   address   00383371   in   module   'phoneDriver.dll'.   Write   of   address   004281BC'.   Process   stopped.   Use   Step   or   Run   to   continue.  
   
  说明:  
  phoneDriver.dll为一连接硬件的DLL,出厂的时候附带的。封装是非标准形式,用的是类的形式。为了使该DLL能给其他语言掉用,我将其用标准形式封装成VC_UPhone.dll。封装后已试验过其中有2个函数可以给C++Builder和Delphi调用。但是在调用startPlayFile函数时出现以上问题。  
   
  源代码如下:  
  unit   Unit14;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls;  
   
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          Edit1:   TEdit;  
          procedure   Button1Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.dfm}  
   
  {function   callOut(callId:   string;   stateSign:   boolean):integer;stdcall;}  
  function   startPlayFile(filePath:   pchar;   openPlay:   boolean;   volume:   longint;   replay:   boolean):   boolean;stdcall;  
  external   'VC_UPhone.dll';  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  startPlayFile('E:\123.WAV',true,100,false);  
  end;  
   
  end.  
   
  求教各位大侠问题所在,十分感谢!

查看回复