msg: array[0..1024] of Char;
sTemp:string;change(msg);
sTemp:=strpas(sTemp);

解决方案 »

  1.   


    //VC代码
    int __stdcall change(char* msg,int len)
    {
      if(!msg) 
        return 0;
       memset(msg,len ,0 );
      strcpy_s(msg,len,"123",3);
      return strlen(msg);
    }msg是外部缓存区入口地址, len是缓存大小;也就是说,外部调用时,你必须要先分配缓存内存再调用这个方法。
      

  2.   

     msg := pchar('') // 这句的意思是把char指针指向一个空字符常量,常量如何能被修改
      

  3.   

    function change(var msg:pchar):integer;stdcall;external 'cz.dll'procedure TForm1.Button1Click(Sender: TObject);
    var
     msg:array [0..255] of char;
    pMsg:PChar;
    iLen:integer;
    begin
     pMsg := @msg[0];
      change(pMsg );
    end;