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

Thread: van 32 bit naar 64 bit

  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 10: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 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.

  5. #5
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,165
    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.

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

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

  8. #8
    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 11:08.
    1+1=b

  9. #9
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,165
    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.

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

  11. #11
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,165
    Ja, maar als je daar gebruik van maakt en geen rans opruimt, blijft het win32-only. Dus je zal er toch doorheen moeten.

    En hoewel het Unicode circus anders is in Lazarus dan in Delphi, blijft dat ook een horde.

    Toch zou ik voor Lazarus gaan, tenzij er echter componenten gebruikt worden die dat lastig maken. (en dan heel lastig, gezien het prijskaartje)

  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
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,165
    Ja, maar dat is voor 32-bit Windows 10:

    As noted, the 64 bit version of Windows does not include NTVDM or any support for a 16 bit subsystem. Your next best option would be setting up a 32 bit version in virtual machine.

  14. #14
    Quote Originally Posted by marcov View Post
    Ja, maar dat is voor 32-bit Windows 10:
    Een lichtgewicht oplossing (zonder complete virtual machine) kan vDos zijn.
    https://www.vdos.info/

  15. #15
    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.

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
  •