Page 1 of 2 1 2 LastLast
Results 1 to 15 of 25

Thread: van 32 bit naar 64 bit

Hybrid View

  1. #1

    van 32 bit naar 64 bit

    Beste Forum leden,

    Ik maak gebruik van Delphi 7 onder windows 10. Nu heb ik een applicatie die ik hierin onderhoud. Nu is dt vooralsnog een 32 bit applicatie. Maar 32 bit zal in de toekomst wel eens gaan verdwijnen of niet meer ondersteund worden Nu is mijn vraag : kan ik dit omzetten naar een 64 bit applicatie en/of hoe zou ik dat moeten doen ?

    Nieuwe Delphi versie gebruiken ? en kan de code behouden blijven of zullen daar ook aanpassingen plaats moeten vinden

    Wie heeft hier kennis over ?

    Alvast bedankt
    Brouwvisie is helemaal mijn ding
    http://www.bier-brouwer.nl

  2. #2
    Ja, je zult natuurlijk wel een nieuwere Delphi versie moeten gebruiken. Delphi 7 doet alleen 32bit. Als het alleen voor testen is en/of je verdient er geen geld mee dan zou je met de community versie kunnen beginnen.

    Verder is het gewoon een kwestie van de target op win64 zetten en kijken waar het mis loopt. Je zult wat compile errors tegenkomen die vrij makkelijk op te lossen zijn. En daarna zul je je programma heel goed moeten testen.

    Ik heb win64 nog niet nodig in mijn (commercieel uitgegeven) programma. Maar ik heb al wel een testrun gedraait op 64bit. Ik denk dat het nog wel een tijd gaat duren voordat win32 niet meer ondersteund wordt.

    Let wel op dat als je voor win64 gaat, je ook nog een win32 versie bij moet gaan houden, want er zijn toch nog heel veel machines die op win32 draaien. (Dat is ook de reden waarom ik nog geen win64 versie uitgeef)
    Last edited by GolezTrol; 29-Jun-20 at 11:57.

  3. #3
    Quote Originally Posted by rvk View Post
    Ik heb win64 nog niet nodig in mijn (commercieel uitgegeven) programma. Maar ik heb al wel een testrun gedraait op 64bit. Ik denk dat het nog wel een tijd gaat duren voordat win32 niet meer ondersteund wordt.
    Ik heb het ook nog niet echt nodig...maar er zijn gebruikers die mijn programma onder MAC willen draaien en de software die ze daar voor nodig hebben ondersteund al bijna geen 32 bits meer (tot nu toe een melding van 1 gebruiker... Maar wil de rest voor zijn indien nodig).
    Brouwvisie is helemaal mijn ding
    http://www.bier-brouwer.nl

  4. #4
    Quote Originally Posted by rvk View Post
    Verder is het gewoon een kwestie van de target op win64 zetten en kijken waar het mis loopt. Je zult wat compile errors tegenkomen die vrij makkelijk op te lossen zijn. En daarna zul je je programma heel goed moeten testen.
    De grootste uitdaging zit niet in het gecompileerd krijgen van de code, maar in de casting van pointers. Hoe vaak komt het voor dat in de code staat "MyObject.Tag := Integer(MyPointer);" of iets vergelijkbaars. Dat wordt een puzzel omdat die niet makkelijk te vinden zijn in een code base met miljoenen regels. En het compileert prima op zowel 32 bit als op 64 bit. Maar een Integer type is 4 bytes (32 bits) en dus zullen 64 bit pointers die gecast worden naar 32 bit Integers en qua waarde boven de 32 range uitstijgen, plots naar verkeerde memory adressen wijzen en een Access Violation geven. Maar pointers beneden de 32 bit range geven weer geen Access Violation. Sommige users melden exceptions die je regelmatig zelf niet kunt reproduceren.

    Let wel op dat als je voor win64 gaat, je ook nog een win32 versie bij moet gaan houden, want er zijn toch nog heel veel machines die op win32 draaien.
    Ik denk dat je je hierin vergist. Doe eens een poll onder je users.
    Zelf geloof ik dat meer dan 90% van alle Windows installaties vandaag de dag een 64 bit versie is. Ik kan niet zo snel harde cijfers vinden.

  5. #5
    Quote Originally Posted by havezet View Post
    De grootste uitdaging zit niet in het gecompileerd krijgen van de code, maar in de casting van pointers. Hoe vaak komt het voor dat in de code staat "MyObject.Tag := Integer(MyPointer);" of iets vergelijkbaars. Dat wordt een puzzel omdat die niet makkelijk te vinden zijn in een code base met miljoenen regels. En het compileert prima op zowel 32 bit als op 64 bit.
    Volgens mij was mijn ervaring dat je daar een waarschuwing voor krijgt (hint). Voor mij was het dan ook gewoon zorgen dat je programma nergens meer hints geeft. Dat waren er in mijn programma wel heel veel maar redelijk goed te doen. Inderdaad was de overgang naar Unicode voor mij groter.

    Quote Originally Posted by havezet View Post
    Ik denk dat je je hierin vergist. Doe eens een poll onder je users.
    Zelf geloof ik dat meer dan 90% van alle Windows installaties vandaag de dag een 64 bit versie is. Ik kan niet zo snel harde cijfers vinden.
    Bij mijn gebruikers is dat zeker niet zo. Ja, nieuwe werkstations worden 64 bit maar ik heb nog heel veel klanten met oudere machines die op 32 bit zitten.

    Ik heb zelfs nog gebruikers op mijn DOS programma zitten Die draaien sowieso op 32bit Windows Omdat ze kunnen printen naar Windows printers (met proportioneel lettertype e.d.) en E-mailen met PDF hebben niet alle gebruikers behoefte om op een Windows versie over te stappen.

  6. #6
    Quote Originally Posted by Oscar View Post
    Maar wil de rest voor zijn indien nodig.
    Dat was ook mijn redenatie. Ik geloof dat thaddy ooit zei iets gelezen te hebben dat Windows snel geen 32bit meer zou ondersteunen maar ik heb de bron daarvan nooit gevonden.

    maar er zijn gebruikers die mijn programma onder MAC willen draaien en de software die ze daar voor nodig hebben ondersteund al bijna geen 32 bits mee
    Dan zou je altijd even moeten vragen wat ze dan draaien (welke VM en welk OS daarin). Want zolang het gewoon Windows is, wordt die 32bit dus ondersteund.

  7. #7
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by rvk View Post
    Dat was ook mijn redenatie. Ik geloof dat thaddy ooit zei iets gelezen te hebben dat Windows snel geen 32bit meer zou ondersteunen maar ik heb de bron daarvan nooit gevonden.
    Er zijn verschillende levels van ondersteuning. Eerst waren er geen 32-bit OEM licenties, zo langzamerhand gaat het naar geen 32-bit kernels meer, voor server is dit er zelfs al een tijdje.

    De laatste stap, geen 32-bit userland WOW is vziw niet op een aangekondigde planning.

  8. #8
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Er zijn nog veel te veel applicaties, die op 32bits leunen.
    Delphi is great. Lazarus is more powerfull

  9. #9
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Overigens zie je dat op Linux (en OS X) wel komen. Maar goed die platformen waren altijd maar beperkt backwards compatible.

  10. #10
    De 16 bit ondersteuning is in recente versies van Windows niet meer geinstalleerd, maar kan je nog steeds aanzetten. Het zal wel even duren voordat de 32bit ondersteuning helemaal weg is.

    Maar als je nu op Delphi 7 zit, met neem ik aan een dikke VCL schil, dan ga je denk ik meer moeite hebben met het porten naar Mac dan met het omzetten na 64 bit. Hoe dan ook ga je daar een nieuwere versie van Delphi voor nodig hebben, of Lazarus.

    Aanpassingen in code zal je wel moeten maken, al is dat ook afhankelijk van hoe je code er nu uitziet. Als je bijvoorbeeld Integers naar Pointers cast, zoals het aloude trucje om getallen in de TObjects van een stringlist te proppen, dan zal je al wat anders moeten verzinnen, want de ene is straks 4 bytes, en de andere 8.

    Ook andere aanpassingen zullen nodig zijn bij een nieuwere versie. De omzetting naar unicode strings e.a. Ook in de libraries is wel het een en ander veranderd, al geldt over het algemeen dat nette code die niet al te veel trucjes en low-level dingen gebruikt, ook makkelijk om te zetten is.

    Met een nieuwe Delphi-licentie mag je ook gebruikmaken van de tussenliggende versies. Ik zou overwegen om je applicatie ook eerst naar 2007 te brengen, hints en warnings weg te werken, en dan verder te upgraden.
    Last edited by GolezTrol; 29-Jun-20 at 12:08.
    1+1=b

  11. #11
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by GolezTrol View Post
    De 16 bit ondersteuning is in recente versies van Windows niet meer geinstalleerd, maar kan je nog steeds aanzetten. Het zal wel even duren voordat de 32bit ondersteuning helemaal weg is.
    Oh dat is interessant? Hoe doe je dat? FPC heeft net een win16 compiler gereleased :-)

    Maar als je nu op Delphi 7 zit, met neem ik aan een dikke VCL schil, dan ga je denk ik meer moeite hebben met het porten naar Mac dan met het omzetten na 64 bit. Hoe dan ook ga je daar een nieuwere versie van Delphi voor nodig hebben, of Lazarus.
    D7 code zit vaak tjokvol geleende "fast" assembler units. Assembler is de grootste belemmering voor 64-bit. Ja er is ook een hoop casten enz dat rommelig is, maar dat is doorgaans redelijk vlot gefixed.

    Een ander puntje is ook dat je doorgaans naar nieuwere componenten versies gaat, en ook dat vereist werk.

    Ook andere aanpassingen zullen nodig zijn bij een nieuwere versie. De omzetting naar unicode strings e.a. Ook in de libraries is wel het een en ander veranderd, al geldt over het algemeen dat nette code die niet al te veel trucjes en low-level dingen gebruikt, ook makkelijk om te zetten is.
    Unicode is inderdaad doorgaans een groter gevecht dan 64-bit. Tenzij je echt elke rans library die voor D7 beschikbaar is gebruikt.

    Met een nieuwe Delphi-licentie mag je ook gebruikmaken van de tussenliggende versies. Ik zou overwegen om je applicatie ook eerst naar 2007 te brengen, hints en warnings weg te werken, en dan verder te upgraden.
    Als je daarvoor eerst een Delphi licentie moet kopen is het misschien het slimst om eerst lazarus te proberen. Eerst op windows, straks gewoon op Mac de IDE draaien. Zeker met de non-perpetual licenses van tegenwoordig. (moet je dan jaarlijkse subscription blijven houden om alleen wat onderhoud te blijven doen?)

    Er zijn al Cocoa native builds, maar begin Juli (met 2.0.10) zou de eerste formele release moeten komen.

  12. #12
    Quote Originally Posted by marcov View Post
    Oh dat is interessant? Hoe doe je dat? FPC heeft net een win16 compiler gereleased :-)
    https://www.groovypost.com/howto/ena...rt-windows-10/

    Ik heb het zelf nooit geprobeerd, eerlijk gezegd. Ik doe niets met 16 bit Windows.
    1+1=b

  13. #13
    Quote Originally Posted by GolezTrol View Post
    Hoe dan ook ga je daar een nieuwere versie van Delphi voor nodig hebben, of Lazarus.
    Lazarus houd ik al enkele jaren in de gaten, maar is nog geen optie voor mij... Ik ben nogal fan van MDI-forms.... en dat werkt nog niet in Lazarus...

    Quote Originally Posted by GolezTrol View Post
    Aanpassingen in code zal je wel moeten maken, al is dat ook afhankelijk van hoe je code er nu uitziet. Als je bijvoorbeeld Integers naar Pointers cast, zoals het aloude trucje om getallen in de TObjects van een stringlist te proppen, dan zal je al wat anders moeten verzinnen, want de ene is straks 4 bytes, en de andere 8.
    mijn programmeer kunsten zijn vrij basic....dus dat soort trucjes gebruik ik niet....

    Quote Originally Posted by GolezTrol View Post
    Met een nieuwe Delphi-licentie mag je ook gebruikmaken van de tussenliggende versies. Ik zou overwegen om je applicatie ook eerst naar 2007 te brengen, hints en warnings weg te werken, en dan verder te upgraden.
    thanks voor de tip.... Ik zal eens kijken of ik die versie ergens kan vinden...en wat een licentie kost...
    Brouwvisie is helemaal mijn ding
    http://www.bier-brouwer.nl

  14. #14
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Quote Originally Posted by Oscar View Post
    Lazarus houd ik al enkele jaren in de gaten, maar is nog geen optie voor mij... Ik ben nogal fan van MDI-forms.... en dat werkt nog niet in Lazarus...
    MDIForms voor QT werken al een tijdje. Voor win32 zijn ze op 2020-02-28 gecommit. Dus dat is mogelijk een tikje verouderd, ik heb er nog niet mee gespeeld, even checken dus.

    Maar MDI op Mac zal lastig zijn, maar dat zal met Delphi niet anders zijn.

    thanks voor de tip.... Ik zal eens kijken of ik die versie ergens kan vinden...en wat een licentie kost...
    Eur 1354 voor de goedkope versie, mogelijk het eerste jaar subscription inclusief. En daarna waarschijnlijk 20% of 25% van die som jaarlijks, want licenses zijn niet meer eeuwigdurend.
    Last edited by marcov; 29-Jun-20 at 23:12.

  15. #15
    D7 en lazarus zijn toch redelijk compatible?

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •