对于pointer类型的变量如何赋值呀?

cjg98821 2007-01-15 04:47:37
var format:pointer;
begin
idc.Host:=lbledtip.Text;
//format:=ACMDialog1.OpenDialog;这句话是通过打开一个“声音选定”对话
//框,我通过单步跟踪得到这个值是$D9F954,那我如果直接想把这个值赋给
//format,用如下语句为何为行呀??应该如何赋呀?
format:=$D9F954;
//format:='$D9F954';这样也不行的
...全文
378 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanggongqin 2007-01-17
  • 打赏
  • 举报
回复
Pointer 是指针类型,它代表的是一个内存地址。
一般情况,使用指针类型是通过这个地址来操作它所指向的变量。
当然如果非要用这个地址值作为你的变量数据,也是可以的,
但是它有长度限制,一般是 16 位的。

直接附指针值的方式就向楼上所说的,比如:
Format := Pointer($D9F954); { 一般情况不会直接操作地址值 }

使用地址操作变量的方式如下:
假设你的 ACMDialog1.OpenDialog 返回值是整型。

GetMem(Format, SizeOf(Integer));
PInteger(Format)^ := ACMDialog1.OpenDialog; { 需要将无类型指针转换为整型指针 }
{ 使用 Format ... ... }
FreeMem(Format);
YouTuBe 2007-01-15
  • 打赏
  • 举报
回复
关注
zhangl_cn 2007-01-15
  • 打赏
  • 举报
回复
ACMDialog1.OpenDialog返回值是什么类型的?

format:=$D9F954;直接赋值是不行的,可以做一下强制类型转换:format:=Pointer($D9F954);

829

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧