Hal cast ayaa u beddeli kara caawiye goobaha proxy oo u ekaaday caadi inuu noqdo cilad ku tiirsan dhismaha:

current = (IntPtr)((int)current + optionSize);

Koodkaas wuxuu cidhiidhiyaa cinwaan asal ah oo u roon 32-bit tiro buuxda ka hor inta uusan ku darin cabbirka qaab-dhismeedka xiga. Habka 64-bit wuxuu hayn karaa cinwaanno aan qaadan. Iyadoo ku xiran beddelka iyo qiimaha, natiijadu waxay noqon kartaa ka-bax xad-dhaaf ah ama cinwaan aan ansax ahayn. Ku noqoshada dhismaha x86 waxay qarin kartaa qaladka, laakiin waxay ka dhigtaa hirgelinta interop mid ku tiirsan halkaas.

Ku hay cinwaannada qaabka cabbirka tilmaame. Tusaale ahaan, maritaanka liis horey loo qoondeeyay waxay isticmaali kartaa:

IntPtr item = IntPtr.Add(buffer, checked(index * optionSize));

Ofsetku wuxuu ahaanayaa tiro buuxda; cinwaanka laftiisu lagama cadaadiyo mid. Cabbirka qoondeynta iyo tilmaamuhu wali waa inay ansax yihiin.

Kadib baar caddaymaha ku xeeran

Doorashooyinka WinINet ee xiriir kasta waxay ka kooban yihiin midnimo ay xubnaheeda ka mid yihiin DWORD, tilmaame xarfo iyo FILETIME. Goobaha tilmaamayaasha waxay u baahan yihiin IntPtr; goobaha DWORD waxay ahaanayaan 32-bit. Isdiiwaangelinta asalka ah waa muhiim, sidaas darteed beddelka tiro kasta oo buuxda tiro buuxda 64-bit ama ku qasbidda qaab duuban ma aha dayactir adag.

Isticmaal cabbirka qaab-dhismeedka ka dib marshaling markaad marayso liiska, si joogto ah u waafaji cadeynta ANSI ama Unicode, oo si gooni ah ula soco qoondeyn kasta. Furitaanka block-ka qaab-dhismeedka doorashooyinka si otomaatig ah uma furo xarfo meel kale loo qoondeeyay oo ay tixraacaan qaab-dhismeedkaas.

Ugu dambeyntii, ka sooc su'aasha baaxadda goobaha iyo saxnaanta xusuusta. Dayactirka cast ma caddeeyo in doorashada WinINet ee caawiyaha ay saameyso kaliya hal kontorool, hal hab ama goobaha isticmaalaha hadda. Hubi dhaqanka API kaas ka hor inta aanad qaadan inta kale ee tusaale duug ah. Haddii ay sidoo kale dirto ogeysiisyo cusboonaysiin, u dooro baaxadda loogu talagalay.

Maqaallo la xiriira