我在安装了一个ActiveX控件后,调用该控件的一个属性myData,其属性为wideString,可是我用观察器查看它的值总是空字符串,但是用length(myData)获得其长度却是有的,而且如果我自己定义一个wstr:WideString然后将其赋值过来也能获得起字符串,即wstr:=Ocx.myData,再访问起wstr的长度与之前一样!
因此我开始跟踪这个属性变量,以下是我跟踪的一些情况:
myData的地址:$12FA70
$12FA70开始后面是大段的0值,
用Pointer(ocx.myData)获得起地址为:$15FED4,
这个地址处开始的确是该字符串的值,可是在没有对myData做任何写操作,只是有时读该属性,刚才的那个地址就有可能改变,不过改变后的地址处的字符串值还是对的。
现在我有几点疑惑希望高手能帮忙:
1.根据WideString变量的特征,应该是在mydata的$12FA70处的4个字节作为地址,该地址处开始的字符串是其值,而为何mydata处的开始地址为4个0。
2.为何用Pointer(mydata)又能访问找到该地址?但是找到的该地址为何又总会变?
因此我开始跟踪这个属性变量,以下是我跟踪的一些情况:
myData的地址:$12FA70
$12FA70开始后面是大段的0值,
用Pointer(ocx.myData)获得起地址为:$15FED4,
这个地址处开始的确是该字符串的值,可是在没有对myData做任何写操作,只是有时读该属性,刚才的那个地址就有可能改变,不过改变后的地址处的字符串值还是对的。
现在我有几点疑惑希望高手能帮忙:
1.根据WideString变量的特征,应该是在mydata的$12FA70处的4个字节作为地址,该地址处开始的字符串是其值,而为何mydata处的开始地址为4个0。
2.为何用Pointer(mydata)又能访问找到该地址?但是找到的该地址为何又总会变?
解决方案 »
- 请介绍一下drawbox函数,谢谢
- 企业的一个进销存管理软件,向另外一个用户发信息时要求在接收方有提示信息。
- idhttp异常时,如何取得错误信息!!
- DELPHI还有前途吗?????????
- 我以前是用pb的想转到delphi,应该如何学习才能速成.有没有好的电子书推荐一下.
- !!!为什么Paradox数据库里不能显示“”(双引号)号呢???
- 一个关于avi文件上传到数据库中的问题?
- dock的窗体拖拉为float后,在关闭后如何再次显示
- 急需懂PB,VB,DELPHI,JAVA,ASP程序员
- delphi里面有直接给它生成的exe文件换图标的函数吗?
- 对比两个图片。
- ActivexForm做的控件的调用问题
var
s: String;
ss: string;
i: integer;
begin
s:= 'abcdefg';
for i:= 0 to Length(s) do
ss:= ss + s[i];
end;
跟你说的情况不一样,而是我的mydata的地址的开始4个字节总是0To:PrgmLover(爱国者)
关键问题,是我根本没有做任何写操作,只是读,而且为何myData的开始自己总是0,而用pointer(mydata)却又能访问到呢?