phcharn  -->>  string.

解决方案 »

  1.   

    较确切的应写为:Type MQOD = record
      StrucId        : String[4];   
      Version        : Longint;
      ObjectType     : Longint;
      ObjectName     : String[48];
      ObjectQMgrName : String[48];
      DynamicQName   : String[48];
      AlternateUserId: String[12];
      RecsPresent    : Longint;
      KnownDestCount : Longint;
      UnknownDestCount : Longint;
      InvalidDestCount : Longint;
      ObjectRecOffset  : Longint;
      ResponseRecOffset: Longint;
      ObjectRecPtr     : String[32]; 
      ResponseRecPtr   : String[32];
      AlternateSecurityId : String[40];
      ResolvedQName       : String[48];
      ResolvedQMgrName    : String[48];
    End ;
      

  2.   

    开始我是这么写的,因为有问题所以我才把 string[48],这样的定义改成 pchar,然后在程序中指定长度,可问题依然存在。
      

  3.   


    1. Record => Packed Record 改为紧缩记录;2. String[..]改为 Char 数组。
    比如:
      String[4] => array[0..3] of Char;
      String[48] => array[0..47] of Char;
      String[32] => array[0..31] of Char; 
      其他String也一样,改为 Char 数组,开始的下标为0,则变量可以与PChar兼容。
      

  4.   

    1:
    把string *???改成数组,同Musicwind(吾爱是Yaya!) 一样.
    2:
    好像VB的ByBal在Delphi中应该用var进行指定.
    3:
    你的过程的声明好像没有指定别名?MQOPENstd@24应该用Name进行指定
      

  5.   

    按照musicwind的指示,果然好用了。
    200分给你。
    另外,还有一个小问题:
    怎么把一个string变量赋值给char数组?var
       a1: array[0,47] of char;
       s1:string;begin
       s1:=edit1.text;
       
       s1的内容如何给a1赋植?
      
      

  6.   


    函数 StrPCopyprocedure TForm1.Button1Click(Sender: TObject);
    var
      a1: array[0..10] of char;
      s: string;
    begin
      a1 := 'Nice';
      s := a1;
      showMessage( s );
      s := 'Hello';
      StrCopy( a1, pchar(s) );
      s := a1;
      ShowMessage( s );
    end;
      

  7.   


    StrCopy( a1, pchar(s) ); //将 s 赋值给 a1数组。