用labview 8.2 生成的dll 函数, 功能是输出某个字符串, vi格式已执行成功。生成原形是void Poivi (double a,double b,PStr c, long len),输入a,b .输出c(传递pascal字符串指针), len表示字符串长度.用delphi 调用,基本如下:
procedure Poivi(a:real; b:real;  c:pstring ,l:longint );stdcall;
external 'poivi.dll';
 
///dll调用
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  s : pstring;
  l  :longint;
begin
     
    Poivi(strtofloat(edit1.Text ),strtofloat(edit2.Text),s, l );
   memo1.Text :=memo1.Text+s ^ ;
end;
 
也试了其他办法,总不行, 肯请各位帮忙解释下,定当感激涕泠!! 所要求的传递pascal字符串指针到低是字符串string,还是pstring

解决方案 »

  1.   

    建议你把procedure Poivi(a:real; b:real;  c:pstring ,l:longint );这个函数的代码贴出来
    当使用了长字符串类型的参数、变量时要引用ShareMem。 而且必须是第一个引用的。既在uses语句后是第一个引用的单元。如下例: uses ShareMem, SysUtils, Classes; 还有一点,在您的工程文件(*.dpr)中而不是单元文件(*.pas)中也要做同样的工作。避免使用string类型的方法是将string类型的参数、变量等声明为Pchar或ShortString(如:s:string[10])类型。 
      

  2.   


     
      生成原形是void Poivi (double a,double b,PStr c, long len),输入a,b .输出c(传递pascal字符串指针), len表示字符串长度.
     它是labview软件生成的,是vi图形化编成语言,看不到代码.