SyntaxBomb - Indie Coders

Languages & Coding => BlitzMax / BlitzMax NG => Topic started by: Midimaster on June 29, 2021, 10:51:06

Title: GetVersion() in BlitzMaxNG
Post by: Midimaster on June 29, 2021, 10:51:06
I actually transfer education software from BlitzMax 1.51 to BlitzMax NG.

I nearly had no problems, but one function looks like working no more:

Code (BlitzMax) Select

?Win32
Extern "win32"
   Function GetVersion:Int()
End Extern
?
.....

Function DiesesOs%()
?MacOs
Return 0
?Win32
Return (GetVersion() & $f)*10  + ((GetVersion() Shr 8) & $f)
?
End Function
?


Error Message is:
In file included from C:/BasicNG/LernProgramme/Auris/.bmx/Auris.bmx.gui.debug.win32.x64.c:1:
C:/BasicNG/LernProgramme/Auris/.bmx/Auris.bmx.gui.debug.win32.x64.h:1080:25: error: conflicting types for 'GetVersion'
extern BBINT __stdcall  GetVersion();
                         ^~~~~~~~~~
In file included from C:/BlitzMaxNG/MinGW32x64/x86_64-w64-mingw32/include/winbase.h:36,
                 from C:/BlitzMaxNG/MinGW32x64/x86_64-w64-mingw32/include/windows.h:70,
                 from C:/BlitzMaxNG/mod/brl.mod/blitz.mod/blitz_thread.h:11,
                 from C:/BlitzMaxNG/mod/brl.mod/blitz.mod/blitz.h:28,
                 from C:/BlitzMaxNG/mod/brl.mod/blitz.mod/.bmx/blitz.bmx.debug.win32.x64.h:4,
                 from C:/BasicNG/LernProgramme/Auris/.bmx/Auris.bmx.gui.debug.win32.x64.h:4,
                 from C:/BasicNG/LernProgramme/Auris/.bmx/Auris.bmx.gui.debug.win32.x64.c:1:
C:/BlitzMaxNG/MinGW32x64/x86_64-w64-mingw32/include/sysinfoapi.h:47:27: note: previous declaration of 'GetVersion' was here
   WINBASEAPI DWORD WINAPI GetVersion (VOID);
                           ^~~~~~~~~~
Build Error: failed to compile (1) C:/BasicNG/LernProgramme/Auris/.bmx/Auris.bmx.gui.debug.win32.x64.c


Can somebody please explain, what happened?
Title: Re: GetVersion() in BlitzMaxNG
Post by: Derron on June 29, 2021, 11:49:01
There is already a GetVersion() defined and you try to redefine it.

you need to "redefine" it more properly now.


untested:
Code (Blitzmax) Select

?Win32
        Extern "win32"
'original definition:    WINBASEAPI DWORD WINAPI GetVersion (VOID);
           Function GetVersion:Int()="DWORD GetVersion()!"
        End Extern
?


WINBASEAPI and WINAPI should be left out - return value, function name and params would be what has to be written in the quotation marks. The "!" exclamation mark makes it "more important" :)


bye
Ron
Title: Re: GetVersion() in BlitzMaxNG
Post by: Midimaster on June 29, 2021, 13:38:08
Thanks a lot Derron!

I do not understand your solution, but it works.