Delphi > Obecné

XE2 a signalizace, že je třída připravena na 64 bitů

(1/2) > >>

pepak:
Byl jsem včera na Snídaní s Embarcaderem o migraci na XE2. Moc se k tomu radši vyjadřovat nebudu, co taky chtít zadarmo, ale zarazila mě tam jedna potenciálně užitečná informace: že je prý třeba ke třídám přidat atribut, který řekne, že je třída kompatibilní s x86 resp. x64 (resp. s oběma). Speciálně jsem se na to ptal a dozvěděl se, že to je třeba udělat u úplně všech tříd. To se mi zdálo divné, tak jsem si to dneska vyzkoušel a řekl bych, že 1) to u mých vlastních tříd odvozených od TObject není třeba dělat (kompilátor aplikaci klidně zkompiluje a tuto aplikaci jde i spustit), a 2) Embarcadero samo to zjevně nedělá, soudě podle toho, že nikde ve zdrojáku VCL ta konstrukce pro deklaraci bitovosti použita není. Takže se chci zeptat - dozvěděl jsem se úplnou blbost (bitovost není třeba signalizovat vůbec) nebo částečnou blbost (signalizace potřeba je, ale jen v některých situacích), nebo jsem nesprávně vyhodnotil to, co vidím ve zdrojácích a co jsem si zkoušel?

< z >:
predpokladam, ze pokud nic signalizovane neni, tak to jde spustit u obou,
specifikovat to je potreba u kodu, ktery opravdu jsou kompatibilni s jednim

me to nic nerika (mozna budu mlet blbosti), ale nejaky ty instrukce SSE4 jsou jen pro x64 a tak by to u nejakych takovych funkci melo byt znaceno

pepak:
No, ta informace totiž byla opačná - pokud chci něco jiného než x86, musím to explicitně uvést, zatímco praktický test a ostatně i logika věci mluví spíš o opak (pokud neuvedu něco jiného, znamená to podporu všeho).

pepak:
Zítra když tak kouknu do materiálů, které jsem si pochopitelně nechal v práci, jak přesně ta signalizace vypadala.

Radek Červinka:
To je blbost. Jediné co je nutné, je v případě, že tvoje komponenta je jen pro jednu platformu toto specifikovat, aby designer (nebo IDE) ji nenabízelo. Aspon co vím. Jinak se předpokládají všechny platformy.


--- Kód: Delphi ---  [ComponentPlatformsAttribute(pidWin32 or pidWin64)] // not supported on OSX  TMyComponent = class(TComponent)  private    ...  end; 

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi