加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 无效的类型转换:在64位平台上将记录转换为tobject

发布时间:2020-12-15 09:32:29 所属栏目:大数据 来源:网络整理
导读:它适用于32位平台,但不适用于64位平台 这是exzample TVerbInfo = packed record Verb: Smallint; Flags: Word; end;var VerbInfo: TVerbInfo; strList : TStringList; verb : Smallint; flags : Word;begin strList := TStringList.create(); ..... verbInfo
它适用于32位平台,但不适用于64位平台
这是exzample

TVerbInfo = packed record
    Verb: Smallint;
    Flags: Word;
  end;

var
  VerbInfo: TVerbInfo;
  strList : TStringList;
  verb : Smallint;
  flags : Word;
begin
  strList := TStringList.create();
  .....
  verbInfo.verb := verb;
  verbInfo.flags := flags;
  strList.addObject('verb1',TObject(VerbInfo));  //invalid typecast happened here
end;

谁能帮我?非常感谢你

解决方法

你可以尝试这样的事情:

function MakeVerbInfoObject(const AVerbInfo: TVerbInfo): TObject;
begin
  Result := nil;
  Move(AVerbInfo,Result,SizeOf(AVerbInfo));
end;

strList.addObject('verb1',MakeVerbInfoObject(VerbInfo));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读