Author Topic: QB64 x64 (10-17-2018)  (Read 4709 times)

0 Members and 1 Guest are viewing this topic.

Offline SMcNeill

  • QB64 Developer
  • Forum Resident
  • Posts: 3972
    • View Profile
    • Steve’s QB64 Archive Forum
QB64 x64 (10-17-2018)
« on: July 21, 2018, 02:24:05 pm »
I updated the version of the 64-bit windows copy of QB64 so recent changes, alterations, and additions will work for those who want/need to program in a 64-bit environment with Windows.  Download can be found over here: http://qb64.freeforums.net/thread/100/qb64-x64-07-21-2018



One note to Luke and Felippe, which still requires a manual edit of libqb.cpp before a 64-bit version will build properly:

Code: QB64: [Select]
  1. int32 func__handle(){
  2.     #ifdef QB64_GUI
  3.         #ifdef QB64_WINDOWS
  4.             while (!window_handle){Sleep(100);}
  5.             return (int32)window_handle;
  6.         #endif
  7.     #endif
  8.    
  9.     return 0;
  10. }

The above will error and crap out on compilation for us, and the reason is simple -- you can't return a 64-bit window handle to a 32-bit integer.  At least, not if you want it to work right at all.  ;)

Change is simple and doesn't affect the 32-bit version at all -- simply return an integer based on the pointersize, as below:

Code: QB64: [Select]
  1. int32 func__handle(){
  2.     #ifdef QB64_GUI
  3.         #ifdef QB64_WINDOWS
  4.             while (!window_handle){Sleep(100);}
  5.             return (ptrszint)window_handle;
  6.         #endif
  7.     #endif
  8.    
  9.     return 0;
  10. }

If one of you could make and push the simple change into the repo with your next edit, all that's needed from this point forward is to swap out the 32-bit c-compiler for a 64-bit c-compiler and then run setup_win.bat, to build the 64-bit version whenever someone wants/needs to update it in the future.  ;)
« Last Edit: October 17, 2018, 05:20:24 pm by SMcNeill »
https://github.com/SteveMcNeill/Steve64 — A github collection of all things Steve!

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: QB64 x64 (07-21-2018)
« Reply #1 on: July 21, 2018, 07:29:22 pm »
Thanks Steve!

Everything seems to working fine so far in QB64 X 64 folder, including InForm stuff.

Offline SMcNeill

  • QB64 Developer
  • Forum Resident
  • Posts: 3972
    • View Profile
    • Steve’s QB64 Archive Forum
Re: QB64 x64 (07-21-2018)
« Reply #2 on: July 21, 2018, 10:10:57 pm »
Glad to hear it's all working as expected.  Every so often, the 64-bit version seems to find new and unusual ways to glitch out on us.  Last time, it was using LINE and BF (box fill) which died on us, so I'm always half expecting somebody to report a weird new bug every time I do a new 64-bit version, so it's nice when it appears to work properly the first time around.

If it ever does glitch with the x64 version for you, in a manner inconsistent to how it behaves in the x32 version, let me know and I'll try and sort out the issue ASAP for everyone. 
https://github.com/SteveMcNeill/Steve64 — A github collection of all things Steve!

Offline keybone

  • Forum Regular
  • Posts: 116
  • My name a Nursultan Tulyakbay.
    • View Profile
Re: QB64 x64 (07-21-2018)
« Reply #3 on: August 01, 2018, 01:28:58 pm »
I updated the version of the 64-bit windows copy of QB64 so recent changes, alterations, and additions will work for those who want/need to program in a 64-bit environment with Windows.  Download can be found over here: http://qb64.freeforums.net/thread/100/qb64-x64-07-21-2018



One note to Luke and Felippe, which still requires a manual edit of libqb.cpp before a 64-bit version will build properly:

Code: QB64: [Select]
  1. int32 func__handle(){
  2.     #ifdef QB64_GUI
  3.         #ifdef QB64_WINDOWS
  4.             while (!window_handle){Sleep(100);}
  5.             return (int32)window_handle;
  6.         #endif
  7.     #endif
  8.    
  9.     return 0;
  10. }

The above will error and crap out on compilation for us, and the reason is simple -- you can't return a 64-bit window handle to a 32-bit integer.  At least, not if you want it to work right at all.  ;)

Change is simple and doesn't affect the 32-bit version at all -- simply return an integer based on the pointersize, as below:

Code: QB64: [Select]
  1. int32 func__handle(){
  2.     #ifdef QB64_GUI
  3.         #ifdef QB64_WINDOWS
  4.             while (!window_handle){Sleep(100);}
  5.             return (ptrszint)window_handle;
  6.         #endif
  7.     #endif
  8.    
  9.     return 0;
  10. }

If one of you could make and push the simple change into the repo with your next edit, all that's needed from this point forward is to swap out the 32-bit c-compiler for a 64-bit c-compiler and then run setup_win.bat, to build the 64-bit version whenever someone wants/needs to update it in the future.  ;)

Thank you SMcNeill, this is great. :)
I am from a Kazakhstan, we follow the hawk.

Offline _vince

  • Seasoned Forum Regular
  • Posts: 422
    • View Profile
Re: QB64 x64 (07-21-2018)
« Reply #4 on: August 02, 2018, 10:57:57 am »
Yeah, nice work Steve!

Offline SMcNeill

  • QB64 Developer
  • Forum Resident
  • Posts: 3972
    • View Profile
    • Steve’s QB64 Archive Forum
Re: QB64 x64 (10-17-2018)
« Reply #5 on: October 17, 2018, 05:20:01 pm »
Updated the 64-bit version for 10-17-2018, to bring us up to date with all the changes, enhancements, and bug fixes that have taken place in the last 3 months or so of development.  Grab it from here:  http://qb64.freeforums.net/thread/100/qb64-x64-10-17-2018
https://github.com/SteveMcNeill/Steve64 — A github collection of all things Steve!