Carson a bhriseas seann neach-cuideachaidh proxy WinINet ann an togail 64-bit
Aithnich gearradh phuingearan ann an eisimpleirean interop proxy C# agus thoir sùil air cruth nan structar agus seilbh cuimhne mus cleachd thu a-rithist iad.
Faodaidh aon cast neach-cuideachaidh roghainnean proxy a tha coltach ri cumanta a thionndadh gu fàilligeadh a tha an urra ris an ailtireachd:
current = (IntPtr)((int)current + optionSize);
Bidh an còd sin a' caolachadh seòladh tùsail gu àireamh-slàn 32-bit mus cuir e ri meud an ath structair. Faodaidh pròiseas 64-bit seòlaidhean a chumail nach eil a' freagairt. A rèir an tionndaidh agus an luach, dh'fhaodadh an toradh a bhith na eisgeachd thar-shruth no na sheòladh mì-dhligheach. Dh'fhaodadh tilleadh an togail gu x86 am mearachd fhalach, ach fàgaidh e buileachadh an interop an urra ris an fhuasgladh sin.
Cùm seòlaidhean ann an cruth meud puingear. Mar eisimpleir, gus siubhal tro rèiteach a chaidh a riarachadh mu thràth faodar seo a chleachdadh:
IntPtr item = IntPtr.Add(buffer, checked(index * optionSize));
Tha an offset a' fuireach na àireamh-slàn; chan eil an seòladh fhèin air a bhrùthadh tro aon. Feumaidh meud an riarachaidh agus an clàr-innse a bhith dligheach fhathast.
An uair sin sgrùdaich na dearbhaidhean mun cuairt
Tha roghainnean WinINet airson gach ceangal a' gabhail a-steach aonadh a tha a' gabhail a-steach DWORD, puingear sreang agus FILETIME am measg a bhall. Feumaidh raointean puingear IntPtr; tha raointean DWORD a' fuireach 32-bit. Tha cudromachd aig co-thaobhadh tùsail, agus mar sin chan e càradh fallain a th' ann a bhith ag ionadachadh gach àireamh-slàn le àireamh-slàn 64-bit no a' sparradh cruth pacaichte.
Cleachd meud an structair an dèidh marshaling nuair a shiubhlas tu tron rèiteach, ceangail an dearbhadh ANSI no Unicode gu cunbhalach, agus lean gach riarachadh air leth. Chan eil leigeil mu sgaoil bloca nan structar roghainnean a' leigeil mu sgaoil sreangan a chaidh a riarachadh an àite eile agus a tha na structairean sin a' toirt iomradh orra gu fèin-ghluasadach.
Mu dheireadh, cùm ceist farsaingeachd nan roghainnean air leth bho chruinneas cuimhne. Chan eil càradh cast a' dearbhadh nach eil roghainn WinINet a thaghas neach-cuideachaidh a' bualadh air ach aon smachd, aon phròiseas no roghainnean a' chleachdaiche làithreach. Thoir sùil air giùlan an API sin mus gabh thu ris a' chòrr de sheann eisimpleir. Ma chuireas e fiosan ùrachaidh cuideachd, tagh iad airson an fharsaingeachd a thathar an dùil.