我有一个字符串的加密函数,我写入了Dll中,在delphi中调用,调用结果成功,但是每次都有一个错误提示"Invalid pointer opreation"!
还有就是这个函数直接写在程序里面,而不是调用DLL的话,就一切正常,不出现这个可恶的错误提示!
我估计是指针的问题,请问如何解决?

解决方案 »

  1.   

    字符串引起的、uses ShareMem;
    看看DLL单元最前面的那段注释、
      

  2.   

    DLL文件和调用单元的uses 部分都加上uses ShareMem;(放在第一个)、
    或者不用string、用pchar或shortstring类型替代
      

  3.   

    我都加入了sharemem,这回函数不出现错误,但是程序一退出就出现这个错误了!
    还有就是 pchar 类型怎么使用,能否给以个例子?
    是否长度从1到high(pchar)  ?
    还是0到(hign(pchar)-1)
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     pc : PChar;
     str1 : string;
     str2 : string;
    begin
     try
       str1 := '1234567890';
       GetMem(pc,length(str1));
       ZeroMemory(pc,length(str1));
       move(str1[1],pc[0],length(str1));
       SetLength(str2,length(str1));
       move(pc[0],str2[1],length(str1));
       ShowMessage(str2);
     finally
       FreeMem(pc);
     end;
    end;
      

  5.   

    都是我的错、没说清楚、最好加在dpr单元中