如何进行结构体指针类型转换 var lpRGBQuad : ^TRGBQuad; lpBmpImageData : ^TBitmapInfoHeader; //如何类型转换? lpRGBQuad := TRGBQuad(lpTempBmpImageData); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lpRGBQuad := TRGBQuad(lpTempBmpImageData^); lpRGBQuad := TRGBQuad(lpTempBmpImageData^); 是的,两种不同的结构体。Windows GDI 的。lpTempBmpImageData指向了位图内存,经过指针运算后指针下移,赋给调色板指针lpRGBQuad,让它指向自己的起始位置如果这样不行,还有其他变通吗? lpRGBQuad := pointer(lpTempBmpImageData) 唉,我也是看用C就直接转了,才这样试的。申请一块内存,用于存放位图数据,位图起始是TBitmapInfoHeader结构体,然后是TRGBQuad结构体,再然后是图像数据。先填充了TBitmapInfoHeader结构体,即lpTempBmpImageData 。然后对lpTempBmpImageData进行指针运算,下移,找到TRGBQuad结构体的起始位置,由lpRGBQuad指向。lpRGBQuad := TRGBQuad(lpTempBmpImageData^); 就是想给lpRGBQuad赋值,找到TRGBQuad结构体的起始位置。 寻址的话,先转Pointer,再转Integer,然后就可以进行地址运算了。如果直接指针地址赋值,就用avan_lau的方法。指向区域是否有效,取决于这两种类型的内存结构是否完全相同。 指针运算必须转为Integer吗?我在做lpTempBmpImageData指针运算时也这样做的:Inc(PByte(lpTempBmpImageData), SizeOf(TBitMapInfoHeader)); 这样有问题吗? Inc也可以,但是如果碰到要用乘法的时候就要转整数了 我先去试试。谢谢啊能不能推荐一些这方面的资料?我找到的资料,讲Pascal语法篇幅很少,指针都是一笔带过。这些东西我都没在书上看到过 【急】frxReport1GetValue调用 delphi想深入 怎么先查询出一个表中的最后一条记录,加1后再插入到该表中呢? 这样的sql 语句怎么写 Delphi 中默认的继承方式应该是Public 吧 ? 十万火急,高手进行看看,希望大家来帮帮忙 江湖救急!请教 OleContainer,中取得 大2近制 Stream数据 怎么保存的数据库 一個不明飛行物。。 RBuilder 中,怎么把报表(包括所有数据)存为其它文件,以后可以不需要数据库也能用? 重定向WindowProc的方法可以截获其他程序的事件吗? 求教高手 delphi 事件与响应的问题 动态数组参数传递问题
lpTempBmpImageData指向了位图内存,经过指针运算后指针下移,赋给调色板指针lpRGBQuad,让它指向自己的起始位置
如果这样不行,还有其他变通吗?
申请一块内存,用于存放位图数据,位图起始是TBitmapInfoHeader结构体,然后是TRGBQuad结构体,再然后是图像数据。
先填充了TBitmapInfoHeader结构体,即lpTempBmpImageData 。然后对lpTempBmpImageData进行指针运算,下移,找到TRGBQuad结构体的起始位置,由lpRGBQuad指向。
lpRGBQuad := TRGBQuad(lpTempBmpImageData^); 就是想给lpRGBQuad赋值,找到TRGBQuad结构体的起始位置。
我在做lpTempBmpImageData指针运算时也这样做的:
Inc(PByte(lpTempBmpImageData), SizeOf(TBitMapInfoHeader));
这样有问题吗?
能不能推荐一些这方面的资料?我找到的资料,讲Pascal语法篇幅很少,指针都是一笔带过。这些东西我都没在书上看到过