Delphi 6 Update 2 noodzakelijk kwaad? |
Variants
Vlak na het uitkomen van de Update 2 konden we berichten lezen in de delphi.non-technical newsgroep betreffende een probleem met executables (gecompileerd met Delphi 6 Update 2) die niet langer werken onder Windows 95.
Gelukkig heb ik thuis nog een Windows 95 machine (een spelletjescomputer voor de kinderen), dus kon ik dit makkelijk testen.
Wie schetst mijn verbazing toen ik inderdaad de volgende foutmelding kreeg (gegenereerd door een executable die met Delphi 6.02 was gecompileerd):
Later bleek zelfs dat dit niet alleen fout gaat op Windows 95 machines, maar ook op de eerste releases van Windows 98 en zelfs Windows NT4 voor service pack 2.
function VarNeg; external oleaut name 'VarNeg'; function VarNot; external oleaut name 'VarNot';En ze worden gebruikt in de NegateViaOS en NotViaOS procedures in de Variants unit zelf. Om ervoor te zorgen dat de VarNeg en VarNot niet langer gebruikt worden (en door de linker dus niet geïmporteerd zullen worden), kunnen we de aanroepen naar VarNeg en VarNot in commentaar zetten. Ik heb er zelf nog een Assert aan toegevoegd, om te kijken of de NegateViaOS en NotViaOS überhaubt worden gebruikt:
procedure NegateViaOS(var Dest: TVarData); begin //VarResultCheck(VarNeg(Dest, Dest)); Assert(False, 'NegateViaOS'); end; procedure NotViaOS(var Dest: TVarData); begin //VarResultCheck(VarNot(Dest, Dest)); Assert(False, 'NotViaOS'); end;Het blijkt dat bovenstaande NegateViaOS en NotViaOS alleen maar worden aangeroepen in het geval van een Variant operatie op een niet direkt door Delphi ondersteund type (voor dit "onbekende" type is de oplossing om dan het OS te gebruiken voor de Negate en Not operaties). Dus het probleem lijkt mee te vallen (behoudens het feit dat de twee APIs niet aangetroffen worden op oudere Windows machines).
Public Betas
Als er geen Update 3 meer komt, dan moeten er naast de Variants bug, nog enkele andere zaken handmatig worden aangepast.
Ik noemde eerder al de on-line help, maar er zijn na Update 2 nog enkele andere additionele zaken uitgebracht, zoals:
Delphi 6 laatste Variants Patch
De laatste Variants Patch heeft nu de status "officieel" gekregen van Borland (was eerst alleen maar "public beta").
Zie de Borland Developer Network website voor details.
Nawoord
Hoe om te gaan met de Public Betas?
Het is leuk om front-runner te zijn, maar er moeten vaak ook toepassingen worden opgeleverd, en daarbij is het gebruik van een Public Beta weer niet aan te raden (weinig klanten stellen het op prijs om als beta tester op te treden - tenzij ze dat van te voren is gevraagd).
Het is dus altijd weer een "strijd" tussen de nieuw(st)e technologie en "de orde van de dag", en ik ken meerdere ontwikkelaars die nog steeds Delphi 5 gebruiken voor lopende projecten (en met de nieuwste versie van Delphi aan het prototypen zijn voor de toekomst, maar nog niet veel meer).
Ik kan me als eenmanszaak (met als voornaamste doel het geven van trainingen en consultancy) gelukkig wél veroorloven om op het scherpst van de snede de nieuwe technieken uit te proberen, en daarbij een voortrekkersrol te nemen (om vervolgens mijn ervaringen weer hier op de website te rapporteren en in mijn trainingen en adviezen te verwerken).
Mocht iemand nog vragen, opmerkingen of suggesties hebben, dan hoor ik die het liefst via .