Kungani umsizi we-WinINet proxy wakudala uphuka ku-64-bit build
Bona ukusikwa kwama-pointer ezibonelweni ze-C# proxy interop futhi uhlole ukuhlelwa kwesakhiwo kanye nobunikazi bememori ngaphambi kokuphinda uwasebenzise.
I-cast eyodwa ingashintsha umsizi wezilungiselelo ze-proxy obonakala uvamile ube ukwehluleka okuncike ekwakhiweni:
current = (IntPtr)((int)current + optionSize);
Leyo khodi inciphisa ikheli lomdabu libe yinombolo ephelele ye-32-bit ngaphambi kokwengeza usayizi wesakhiwo esilandelayo. Inqubo ye-64-bit ingagcina amakheli angangeni. Kuye ngokuguqulwa nangevelu, umphumela ungaba isikhathi sokuchichima noma ikheli elingavumelekile. Ukubuyisela i-build ku-x86 kungafihla iphutha, kodwa kushiya ukusetshenziswa kwe-interop kuncike kulelo qhinga.
Gcina amakheli esimweni sosayizi we-pointer. Isibonelo, ukuhamba ku-array esivele yabiwe kungasebenzisa:
IntPtr item = IntPtr.Add(buffer, checked(index * optionSize));
I-offset ihlala iyinombolo ephelele; ikheli ngokwalo alicindezelwa ngayo. Usayizi wokwabiwa kanye nenkomba kusamele kube semthethweni.
Bese uhlola izimemezelo ezizungezile
Izinketho ze-WinINet zokuxhumana ngakunye ziqukethe inyunyana enezinto ezihlanganisa i-DWORD, i-pointer yechashazi kanye ne-FILETIME. Izinkambu ze-pointer zidinga IntPtr; izinkambu ze-DWORD zihlala zingama-32-bit. Ukuqondanisa komdabu kubalulekile, ngakho ukufaka yonke inombolo ephelele ngenombolo ephelele ye-64-bit noma ukuphoqelela ukuhlelwa okupakiwe akulona ikhambi eliqinile.
Sebenzisa usayizi wesakhiwo ngemva kwe-marshaling uma uhamba ku-array, fanisa isimemezelo se-ANSI noma se-Unicode ngokungaguquki, futhi landelela ukwabiwa ngakunye ngokwehlukana. Ukukhulula ibhloko lezakhiwo zezinketho akukhululi ngokuzenzakalela izichashazi ezabiwe kwenye indawo futhi ezibhekiselwa yilezo zakhiwo.
Ekugcineni, hlukanisa umbuzo wobubanzi bezilungiselelo nokunemba kwememori. Ukulungisa i-cast akufakazi ukuthi inketho ye-WinINet ekhethiwe ithinta kuphela isilawuli esisodwa, inqubo eyodwa noma izilungiselelo zomsebenzisi wamanje. Hlola lokho kuziphatha kwe-API ngaphambi kokwamukela ingxenye esele yesibonelo sakudala. Uma futhi ithumela izaziso zokuvuselela, khetha lezo kububanzi obuhlosiwe.