線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2220
推到 Plurk!
推到 Facebook!

关于TByteDynArray的问题!

尚未結案
seabelial
一般會員


發表:3
回覆:1
積分:0
註冊:2004-01-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-29 09:41:19 IP:218.104.xxx.xxx 未訂閱
我写了个用WEB SERVICE传递数据的软件,传递的结构是从TRemortTable继承的,然后自己加了个TByteDynArray来保存要传送的数据,在向WebServerice传递的时候,DELPHI会自动将该数组的数据转换成Base64编码,很奇怪的是,如果 该数组的前4个字节为0,后面即使有数据,也在生成的XML中为空(null=true),如果将第一个字节手工修改为非0,那么就可以把该数组成功传递,是不是很奇怪? 通过跟踪源代码,发觉是DELPHI在取TByteDynArray的指针的时候没有取到(前4个字节为0时),而取指针的代码是汇编写的,看不懂,请教高人了! 开发环境:DELPHI7 以下代码为DELPHI的源码,取对象指针的。 function GetOrdPropEx(Instance: TObject; PropInfo: PPropInfo): Longint; asm { -> EAX Pointer to instance } { EDX Pointer to property info } { <- EAX Longint result } PUSH EBX PUSH EDI MOV EDI,[EDX].TPropInfo.PropType MOV EDI,[EDI] MOV BL,otSLong CMP [EDI].TTypeInfo.Kind,tkClass JE @@isClass CMP [EDI].TTypeInfo.Kind,tkDynArray JE @@isDynArray CMP [EDI].TTypeInfo.Kind,tkInterface JE @@isInterface XOR ECX,ECX MOV CL,[EDI].TTypeInfo.Name.Byte[0] MOV BL,[EDI].TTypeInfo.Name[ECX 1].TTypeData.OrdType @@isDynArray: @@isInterface: @@isClass: MOV ECX,[EDX].TPropInfo.GetProc CMP [EDX].TPropInfo.GetProc.Byte[3],$FE MOV EDX,[EDX].TPropInfo.Index JB @@isStaticMethod JA @@isField { the GetProc is a virtual method } MOVSX ECX,CX { sign extend slot offs } ADD ECX,[EAX] { vmt slotoffs } CALL dword ptr [ECX] { call vmt[slot] } JMP @@final @@isStaticMethod: CALL ECX JMP @@final @@isField: AND ECX,$00FFFFFF ADD ECX,EAX MOV AL,[ECX] CMP BL,otSWord JB @@final MOV AX,[ECX] CMP BL,otSLong JB @@final MOV EAX,[ECX] @@final: CMP BL,otSLong JAE @@exit CMP BL,otSWord JAE @@word CMP BL,otSByte MOVSX EAX,AL JE @@exit AND EAX,$FF JMP @@exit @@word: MOVSX EAX,AX JE @@exit AND EAX,$FFFF @@exit: POP EDI POP EBX end;
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-04-26 13:51:51 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-04 8:23:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!