我的代码(部分):
PXZ=^TXZJS ; //保存选址GetGisToOaSiteData计算返回的相关数据
TXZJS=record
xzmj:double; //选址面积
symj:double; //建筑用地面积
rjr :String ; //容积率
jzmd :String ; //建筑密度
jzgd :double ; //建筑限高
tcmg:double; //机动停车
tcmgbl:double; //机动停车位比例
ftcmg :double ; //非机动停车
ftcmgbl:double ; //非机动停车位比例
rdr :double ; //绿地面积率
end;
PYD=^TYDJS;
TYDJS=Record
zydmj:double; //总用地面积 ?
symj: double; //建筑用地面积
ydfl: double; //用地性质
jzmg: double ; //建筑面积
rjr:String; //容积率
jzmd :String; //建筑密度
jzgd: double ; //建筑限高
tcmg: double ; //机动停车
tcmgbl: double ; //机动停车位比例
ftcmg: double ; //非机动停车
ftcmgbl: double ; //非机动停车位比例
rdr : double ; //绿地面积率 m_plantDensity
end;
……
XZ_: PXZ;//选址的相关面积计算 GetGisToOaSiteData
YD_:PYD;//用地的相关面积计算 GetGisToOaLanduse
……
GetMem(XZ_,Sizeof(XZ_));
GetMem(YD_,Sizeof(YD_));
**********************************************
XZ_:=PXZ(Pointer(MB.GetGisToOaSiteData())); //
YD_:=PYD(Pointer(MB.GetGisToOaLanduse()));//---------1
**********************************************
**********************************************或者
XZ_:=PXZ(MB.GetGisToOaSiteData()); //
YD_:=PYD(MB.GetGisToOaLanduse());//---------1
**********************************************
FrmPlanLocation.DBEdtColLandArea3.Text:=Floattostr(XZ_^.xzmj);
FrmPlanPermit.DBEdtColLandArea2.Text:=Floattostr(YD_^.zydmj);
MB.GetGisToOaLanduse());//
MB.GetGisToOaSiteData());
这两个函数返回一个整数(vc定义的*.OCX函数)指针--我得调用,返回一个结构体一运行到‘------1’处就蹦出地址错误,为什么呀?求教了都~~~~~~
PXZ=^TXZJS ; //保存选址GetGisToOaSiteData计算返回的相关数据
TXZJS=record
xzmj:double; //选址面积
symj:double; //建筑用地面积
rjr :String ; //容积率
jzmd :String ; //建筑密度
jzgd :double ; //建筑限高
tcmg:double; //机动停车
tcmgbl:double; //机动停车位比例
ftcmg :double ; //非机动停车
ftcmgbl:double ; //非机动停车位比例
rdr :double ; //绿地面积率
end;
PYD=^TYDJS;
TYDJS=Record
zydmj:double; //总用地面积 ?
symj: double; //建筑用地面积
ydfl: double; //用地性质
jzmg: double ; //建筑面积
rjr:String; //容积率
jzmd :String; //建筑密度
jzgd: double ; //建筑限高
tcmg: double ; //机动停车
tcmgbl: double ; //机动停车位比例
ftcmg: double ; //非机动停车
ftcmgbl: double ; //非机动停车位比例
rdr : double ; //绿地面积率 m_plantDensity
end;
……
XZ_: PXZ;//选址的相关面积计算 GetGisToOaSiteData
YD_:PYD;//用地的相关面积计算 GetGisToOaLanduse
……
GetMem(XZ_,Sizeof(XZ_));
GetMem(YD_,Sizeof(YD_));
**********************************************
XZ_:=PXZ(Pointer(MB.GetGisToOaSiteData())); //
YD_:=PYD(Pointer(MB.GetGisToOaLanduse()));//---------1
**********************************************
**********************************************或者
XZ_:=PXZ(MB.GetGisToOaSiteData()); //
YD_:=PYD(MB.GetGisToOaLanduse());//---------1
**********************************************
FrmPlanLocation.DBEdtColLandArea3.Text:=Floattostr(XZ_^.xzmj);
FrmPlanPermit.DBEdtColLandArea2.Text:=Floattostr(YD_^.zydmj);
MB.GetGisToOaLanduse());//
MB.GetGisToOaSiteData());
这两个函数返回一个整数(vc定义的*.OCX函数)指针--我得调用,返回一个结构体一运行到‘------1’处就蹦出地址错误,为什么呀?求教了都~~~~~~
解决方案 »
- 您会吗?这是菜鸟级数据库读写
- 为什么我写的ActiveX From 在网页中浏览只看到一片灰色,其它的控件都不知道跑哪去了。请高求解
- delphi中 ACTION 方法,怎么用,什么时用适合。有经验的指点一下,谢了。
- 怎样在本机上连接虚拟主机上的access数据库并管理里面的数据。
- 小弟刚开始用Rave Reports,哪里有相关的中文文档
- 怎么这个sleep不行的?
- 如何制作象WINDOW98那样的开始菜单,也就是在左过有一竖条的(图片或文字)
- 哪位大虾知道扩展名为.wdl文件应该用什么程序打开?送分……
- 万用查询!!!
- 如何在使用Perform时传入wParam 和 lParam
- 关于INDY 里IdFtp的connect 的问题
- 怎样得到bmp文件中象素的rgb值?
GetMem(YD_,Sizeof(YD_));
2句是没必要的!去掉这2句,你再看看错不错,你的函数我不清楚怎么写的,就不好说了!
我怀疑是不是OCX的函数返回类型错了啊?他返回的是整数,但我需要给他转换成指针,以便取的OCX计算的数值。 ——可以把一个整数强制转成一个指针结构体吗?
关于VC的指针我是我一点不懂呀,