Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Allegro 4.2.0 RC2 is released

This thread is locked; no one can reply to it. rss feed Print
 1   2   3 
Allegro 4.2.0 RC2 is released
Matthew Leverton
Supreme Loser
January 1999
avatar

Allegro 4.2.0 RC2 has been released. SourceForge has the source packages, and binaries are available here.

If you build from source, please take note of two things

  1. A last minute change to hline and vline created a lot of warning messages when compiling under MSVC. Just ignore those. It's already been taken care of.

  2. If you use the .zip distribution for building under Linux, be sure to specify the new switch to enable dos to unix new line conversion. The old --quick parameter is now the default behavior.

The files:

  • Examples & Tools
  • Documentation
  • [/list]

    Changes from 4.2.0 RC1 to 4.2.0 RC2 (August 2005)

    • Grady Martin made the grabber consider deleting object properties as a change to the datafile.

    • Milan Mimica fixed numerous bugs in extract_font_range().

    • Peter Hull moved the 'magic chdir' in the MacOS X port to earlier in the startup process, so that the config file will be looked for in the resource directory if is present.

    • Chris Robinson made create_bitmap(0,0) not return a bitmap that would later crash destroy_bitmap(). Zero-sized bitmaps are still not allowed so the assertions for debug mode have not changed.

    • Elias Pschernig patched the Windows keyboard driver to get key_shifts working again with KB_SHIFT_FLAG, KB_CTRL_FLAG, KB_ALT_FLAG on Win98.

    • Peter Wang changed hline and vline into aliases for internal symbols to avoid a conflict with the curses API. This change should be transparent for users.

    • Matthew Leverton and Michal Molhanec updated the build system for MSVC 8.

    • Grzegorz Adam Hankiewicz prevented make_relative_filename() from crashing with malformed parameters.

    • Hrvoje Ban made ASSERT() actually abort in Windows.

    • Chris Robinson made GUI menus work with gui_screen.

    • Evert Glebbeek fixed reading of 32 bit Windows .bmp files, which was not supported. These files seem to be not very standard though, so it's unclear if it will always do the right thing. Alpha channels also seem not to be standard in 32 bit BMP files, so it's possible they're not read in correctly.

    • Peter Wang and Peter Hull updated the ABI compatibility document. This documents our policy for the 4.2.x series.

    • Extensive documentation updates from Grzegorz Adam Hankiewicz and minor updates due to Michael Faerber, Robert Ohannessian and Milan Mimica.

    Changes from 4.2.0 beta 4 to 4.2.0 RC1 (August 2005)

    • Peter Hull fixed the MacOS X port to avoid an issue with the dead bootstrap context and cleaned up the dock notification. This means command line apps (with SYSTEM_NONE) run without the dock being notified.

    • Peter Wang Added a COLORCONV_KEEP_ALPHA flag, as suggested by Gideon Weems.

    • Peter Wang fixed issues with OSS in OpenBSD and made the configure script print a warning if Allegro is compiled without X11 support.

    • Peter Hull set the compatibility version to 4.2.0 for MacOS X and added a MacOS X help file.

    • Peter Wang made the Mode-X and VBE/AF drivers fail if Allegro is compiled as a C-only library in Linux and made the Unix port install liballeg*.so and the alleg-*.so modules with the execute permission enabled.

    • Grady Martin standardised some of the grabber dialog boxes and added a `move' command to the grabber.

    • Evert Glebbeek fixed a bug when loading some old datafiles containing monochrome fonts.

    • Evert Glebbeek fixed a bug that prevented system cursors from working correctly in Windows.

    • Olivier Blin fixed compilation problems for the ModeX driver with newer binutils.

    • Shawn Walker fixed a bug in get_executable_name under some UNIX systems.

    • Shawn Walker worked around a problem with some versions of GNU AS and fixed some errors in the configure script when not using GCC.

    • Elias Pschernig made create_sample not unnecessarily clear the sample to 0.

    • Bobby Ferris fixed the makedoc SciTE API output.

    • Elias Pschernig fixed a too strict assert that prevented set_volume from working in debug mode.

    • Paavo Ahola helped fix a problem with BCC and the C implementations of fixmul.

    • Elias Pschernig fixed a cosmetic bug where the listbox was drawing a too big selection rectangle, reported by dthompson.

    • Documentation and example updates by Grzegorz Adam Hankiewicz, Peter Wang, Elias Pschernig Michal Molhanec and Evert Glebbeek.

    Richard Phipps
    Member #1,632
    November 2001
    avatar

    Many thanks to all who contributed to this! :D

    Michael Faerber
    Member #4,800
    July 2004
    avatar

    Finally a new release!

    But there will probably be at least a 4.2.0 RC3, because the new demo game isn't integrated in this release.

    --
    "The basic of informatics is Microsoft Office." - An informatics teacher in our school
    "Do you know Linux?" "Linux? Isn't that something for visually impaired people?"

    gnolam
    Member #2,030
    March 2002
    avatar

    There was an RC1? :o

    Anyway, does anyone have a direct link to the source distribution? Sourceforge's main page seems to be down.

    --
    Move to the Democratic People's Republic of Vivendi Universal (formerly known as Sweden) - officially democracy- and privacy-free since 2008-06-18!

    dthompson
    Member #5,749
    April 2005
    avatar

    I think Beta 4 was RC1. In the Dev-C++ updater, it called Allegro "Allegro 4.2.0 RC1".

    ______________________________________________________
    Website. It was freakdesign.bafsoft.net.
    This isn't a game!

    gnolam
    Member #2,030
    March 2002
    avatar

    Found it.

    Quote:

    I think Beta 4 was RC1.

    It wasn't. But one wonders why you would release a release candidate without telling anyone... (since the whole point of release candidates is testing)

    --
    Move to the Democratic People's Republic of Vivendi Universal (formerly known as Sweden) - officially democracy- and privacy-free since 2008-06-18!

    GullRaDriel
    Member #3,861
    September 2003
    avatar

    downloading & testing (and YES, windows BMP file system is PAIN IN THE DONKEY !)

    "Code is like shit - it only smells if it is not yours"
    Allegro Wiki, full of examples and articles !!

    gnolam
    Member #2,030
    March 2002
    avatar

    Compiled and tested it (MinGW, XP) now. The joystick bug is still there. Also, it seems that the button names are in the wrong order (this was the case the last time as well, alth I just didn't think about it then) - though this might conceivably be a driver issue.

    GullRaDriel said:

    (and YES, windows BMP file system is PAIN IN THE DONKEY !)

    BMP is a file system now?

    --
    Move to the Democratic People's Republic of Vivendi Universal (formerly known as Sweden) - officially democracy- and privacy-free since 2008-06-18!

    dthompson
    Member #5,749
    April 2005
    avatar

    I didn't think BMPs could have alpha channels. That's PNG's job.

    ______________________________________________________
    Website. It was freakdesign.bafsoft.net.
    This isn't a game!

    Fiddler
    Member #5,385
    January 2005

    The RC1 was released internally in the AD mailing list after the beta4. This is the first public release candidate.

    Compiled and tested with MSVC7.1 and Mingw (gcc 3.4.4 candidate) under WinXP. Mostly seems OK.

    NOTE: I tried changing the parameters for the warn mode in MSVC7.1 (from -W3 -WX to -W4 -Wp64, enabling 64bit portability warnings). The results were, well, enlightening. Almost every file has at least one function the does assignment from a 64bit pointer to a 32bit integer (or worse 16bit). Most of these are inside macros, and so impossible to debug properly.

    The most annoying ones (and possibly harmless) are in the draw.inl file. For example:

    include\allegro\inline\draw.inl(535) : warning C4312: 'type cast' : conversion from 'unsigned int' to 'unsigned int *' of greater size

    AL_INLINE(int, _getpixel32, (BITMAP *bmp, int x, int y),
    {
    uintptr_t addr;
    int c;

    bmp_select(bmp);
    addr = bmp_read_line(bmp, y);
    c = bmp_read32(addr+x*sizeof(int32_t));
    bmp_unwrite_line(bmp);

    return c;
    }) // This is line 535. I think the problematic line is the assignment to c

    There are 8 such warnings in draw.inl that will always appear when compiling an app with -Wp64, as allegro.h includes draw.inl. How to combat them? Just detect msvc and supress the warning in this file? That's what I do, but it seems like a hack.

    =========================================================================

    EDIT: In case anyone is interested I redirected the output of the WARNMODE=1 build for MSVC7.1, using the updated parameters, to the attached file. Most warnings come from the draw.inl file, but most others may be cause real problems. Take a look to see what I am talking about.

    =========================================================================

    The Open Toolkit: a game development library for .Net/Mono.
    http://www.opentk.com

    Peter Wang
    Member #23
    April 2000

    The reason RC1 was not publicly announced was... we were too busy with SpeedHack.

    We'll have to look into the 64-bit portability warnings.

    Fiddler
    Member #5,385
    January 2005

    Ahem... Anyone knows how to post news in the Gamedev site? I think this release should be announced. The more users that update to this, the easier it will be to find bugs before the final 4.2.0

    The beta1 release was also announced, and it seems that many upgraded to it (or tried allegro out for the first time).

    The Open Toolkit: a game development library for .Net/Mono.
    http://www.opentk.com

    Morten Bendix
    Member #1,386
    June 2001
    avatar

    Ok, so I'm not the only one who missed RC1.

    There's an "Add a News Item" button on the right, where the news section begins.

    Fiddler
    Member #5,385
    January 2005

    Oh! I had adblocked gifs for speed reasons, so it wouldn't display... ::)

    The Open Toolkit: a game development library for .Net/Mono.
    http://www.opentk.com

    HoHo
    Member #4,534
    April 2004
    avatar

    I tested the source package and it seemed to work fine under Gentoo.

    __________
    In theory, there is no difference between theory and practice. But, in practice, there is - Jan L.A. van de Snepscheut
    MMORPG's...Many Men Online Role Playing Girls - Radagar
    "Is Java REALLY slower? Does STL really bloat your exes? Find out with your friendly host, HoHo, and his benchmarking machine!" - Jakub Wasilewski

    GullRaDriel
    Member #3,861
    September 2003
    avatar

    Gnolam :

    Quote:

    BMP is a file system now?

    No, but RC2 didn't give me a good english ;) i was thinking of 'file format' ;-p

    dthompson:

    Quote:

    I didn't think BMPs could have alpha channels. That's PNG's job.

    32 bit is always faiked. 32 bit is 24 color bits + 8 alpha bits.
    So a 32 bit bitmap will have an alpha channel, as all 32bit picture format.

    I think the bug they talk is more that some soft aren't filling the alpha channel, or fill it in some strange ways.

    "Code is like shit - it only smells if it is not yours"
    Allegro Wiki, full of examples and articles !!

    spellcaster
    Member #1,493
    September 2001
    avatar

    Quote:

    I didn't think BMPs could have alpha channels. That's PNG's job.

    They have alpha support for years. I know that I implemented alpha support in a (java) bmp reading lib I coded about 4 years ago - and 4 computer years are like 40 human years ...

    --
    There are no stupid questions, but there are a lot of inquisitive idiots.

    Matthew Leverton
    Supreme Loser
    January 1999
    avatar

    Quote:

    It wasn't. But one wonders why you would release a release candidate without telling anyone...

    Just for the record: people on the mailing list, on IRC, and here were told, but it didn't make it on SF because people were either away on vacation or busy with SpeedHack.

    Trumgottist
    Member #95
    April 2000
    avatar

    Downloaded it and recompiled Rocket Duel, which seems to be working just as well after the upgrade from 4.0. :)

    A big thanks to those with the skill and motivation to work on things like Allegro! Without people like you, people like me probably wouldn't be making games.

    --
    "I always prefer to believe the best of everybody - it saves so much time." - Rudyard Kipling

    Play my game: Frasse and the Peas of Kejick

    Fiddler
    Member #5,385
    January 2005

    It seems the guys at Gamedev do not like the news ::). If anyone cares, do try to make a post about the Allegro release.

    The Open Toolkit: a game development library for .Net/Mono.
    http://www.opentk.com

    Matthew Leverton
    Supreme Loser
    January 1999
    avatar

    It's on the front page...

    Kitty Cat
    Member #2,815
    October 2002
    avatar

    Quote:

    Almost every file has at least one function the does assignment from a 64bit pointer to a 32bit integer (or worse 16bit).

    Not really. Allegro uses C99 typedefs (eg. uintptr_t; an unsigned integer capable of holding a pointer value) where available for this. On systems that don't have the typedefs, Allegro has to assume a 32-bit target. Since Microsoft doesn't want to follow the C99 standard, it's their own fault for not supplying comparible typedefs.

    --
    "Do not meddle in the affairs of cats, for they are subtle and will pee on your computer." -- Bruce Graham

    Matthew Leverton
    Supreme Loser
    January 1999
    avatar

    What do the references to uintptr_t here mean?

    Kitty Cat
    Member #2,815
    October 2002
    avatar

    Interesting. I don't believe Allegro uses them in MSVC. Figures that they couldn't use stdint.h like the standard says. Someone should update Allegro's VC headers for them before 4.2. What VC version are they in?

    --
    "Do not meddle in the affairs of cats, for they are subtle and will pee on your computer." -- Bruce Graham

    Matthew Leverton
    Supreme Loser
    January 1999
    avatar

    MSVC 6

    #SelectExpand
    1/*** 2*stddef.h - definitions/declarations for common constants, types, variables 3* 4* Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved. 5* 6*Purpose: 7* This file contains definitions and declarations for some commonly 8* used constants, types, and variables. 9* [ANSI] 10* 11* [Public] 12* 13****/ 14 15#if _MSC_VER > 1000 16#pragma once 17#endif 18 19#ifndef _INC_STDDEF 20#define _INC_STDDEF 21 22#if !defined(_WIN32) && !defined(_MAC) 23#error ERROR: Only Mac or Win32 targets supported! 24#endif 25 26 27#ifdef __cplusplus 28extern "C" { 29#endif 30 31 32 33/* Define _CRTIMP */ 34 35#ifndef _CRTIMP 36#ifdef _DLL 37#define _CRTIMP __declspec(dllimport) 38#else /* ndef _DLL */ 39#define _CRTIMP 40#endif /* _DLL */ 41#endif /* _CRTIMP */ 42 43/* Define __cdecl for non-Microsoft compilers */ 44 45#if ( !defined(_MSC_VER) && !defined(__cdecl) ) 46#define __cdecl 47#endif 48 49/* Define _CRTAPI1 (for compatibility with the NT SDK) */ 50 51#ifndef _CRTAPI1 52#if _MSC_VER >= 800 && _M_IX86 >= 300 53#define _CRTAPI1 __cdecl 54#else 55#define _CRTAPI1 56#endif 57#endif 58 59 60/* Define NULL pointer value and the offset() macro */ 61 62#ifndef NULL 63#ifdef __cplusplus 64#define NULL 0 65#else 66#define NULL ((void *)0) 67#endif 68#endif 69 70 71#define offsetof(s,m) (size_t)&(((s *)0)->m) 72 73 74/* Declare reference to errno */ 75 76#if (defined(_MT) || defined(_DLL)) && !defined(_MAC) 77_CRTIMP extern int * __cdecl _errno(void); 78#define errno (*_errno()) 79#else /* ndef _MT && ndef _DLL */ 80_CRTIMP extern int errno; 81#endif /* _MT || _DLL */ 82 83 84/* define the implementation dependent size types */ 85 86#ifndef _PTRDIFF_T_DEFINED 87typedef int ptrdiff_t; 88#define _PTRDIFF_T_DEFINED 89#endif 90 91 92#ifndef _SIZE_T_DEFINED 93typedef unsigned int size_t; 94#define _SIZE_T_DEFINED 95#endif 96 97 98#ifndef _WCHAR_T_DEFINED 99typedef unsigned short wchar_t; 100#define _WCHAR_T_DEFINED 101#endif 102 103 104#ifdef _MT 105_CRTIMP extern unsigned long __cdecl __threadid(void); 106#define _threadid (__threadid()) 107_CRTIMP extern unsigned long __cdecl __threadhandle(void); 108#endif 109 110 111#ifdef __cplusplus 112} 113#endif 114 115#endif /* _INC_STDDEF */

    MSVC 7 (.NET)

    #SelectExpand
    1/*** 2*stddef.h - definitions/declarations for common constants, types, variables 3* 4* Copyright (c) 1985-2001, Microsoft Corporation. All rights reserved. 5* 6*Purpose: 7* This file contains definitions and declarations for some commonly 8* used constants, types, and variables. 9* [ANSI] 10* 11* [Public] 12* 13****/ 14 15#if _MSC_VER > 1000 16#pragma once 17#endif 18 19#ifndef _INC_STDDEF 20#define _INC_STDDEF 21 22#if !defined(_WIN32) 23#error ERROR: Only Win32 target supported! 24#endif 25 26 27#ifdef __cplusplus 28extern "C" { 29#endif 30 31 32#if !defined(_W64) 33#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 34#define _W64 __w64 35#else 36#define _W64 37#endif 38#endif 39 40/* Define _CRTIMP */ 41 42#ifndef _CRTIMP 43#ifdef _DLL 44#define _CRTIMP __declspec(dllimport) 45#else /* ndef _DLL */ 46#define _CRTIMP 47#endif /* _DLL */ 48#endif /* _CRTIMP */ 49 50/* Define __cdecl for non-Microsoft compilers */ 51 52#if ( !defined(_MSC_VER) && !defined(__cdecl) ) 53#define __cdecl 54#endif 55 56 57/* Define NULL pointer value */ 58 59#ifndef NULL 60#ifdef __cplusplus 61#define NULL 0 62#else 63#define NULL ((void *)0) 64#endif 65#endif 66 67 68/* Declare reference to errno */ 69 70#if defined(_MT) || defined(_DLL) 71_CRTIMP extern int * __cdecl _errno(void); 72#define errno (*_errno()) 73#else /* ndef _MT && ndef _DLL */ 74_CRTIMP extern int errno; 75#endif /* _MT || _DLL */ 76 77 78/* Define the implementation dependent size types */ 79 80#ifndef _INTPTR_T_DEFINED 81#ifdef _WIN64 82typedef __int64 intptr_t; 83#else 84typedef _W64 int intptr_t; 85#endif 86#define _INTPTR_T_DEFINED 87#endif 88 89#ifndef _UINTPTR_T_DEFINED 90#ifdef _WIN64 91typedef unsigned __int64 uintptr_t; 92#else 93typedef _W64 unsigned int uintptr_t; 94#endif 95#define _UINTPTR_T_DEFINED 96#endif 97 98#ifndef _PTRDIFF_T_DEFINED 99#ifdef _WIN64 100typedef __int64 ptrdiff_t; 101 102#else 103typedef _W64 int ptrdiff_t; 104#endif 105#define _PTRDIFF_T_DEFINED 106#endif 107 108 109#ifndef _SIZE_T_DEFINED 110#ifdef _WIN64 111typedef unsigned __int64 size_t; 112#else 113typedef _W64 unsigned int size_t; 114#endif 115#define _SIZE_T_DEFINED 116#endif 117 118 119#ifndef _WCHAR_T_DEFINED 120typedef unsigned short wchar_t; 121#define _WCHAR_T_DEFINED 122#endif 123 124/* Define offsetof macro */ 125 126#ifdef _WIN64 127#define offsetof(s,m) (size_t)( (ptrdiff_t)&(((s *)0)->m) ) 128#else 129#define offsetof(s,m) (size_t)&(((s *)0)->m) 130#endif 131 132 133#ifdef _MT 134_CRTIMP extern unsigned long __cdecl __threadid(void); 135#define _threadid (__threadid()) 136_CRTIMP extern uintptr_t __cdecl __threadhandle(void); 137#endif 138 139 140#ifdef __cplusplus 141} 142#endif 143 144#endif /* _INC_STDDEF */

    MSVC 7.1 (.NET 2003)

    #SelectExpand
    1/*** 2*stddef.h - definitions/declarations for common constants, types, variables 3* 4* Copyright (c) Microsoft Corporation. All rights reserved. 5* 6*Purpose: 7* This file contains definitions and declarations for some commonly 8* used constants, types, and variables. 9* [ANSI] 10* 11* [Public] 12* 13****/ 14 15#if _MSC_VER > 1000 16#pragma once 17#endif 18 19#ifndef _INC_STDDEF 20#define _INC_STDDEF 21 22#if !defined(_WIN32) 23#error ERROR: Only Win32 target supported! 24#endif 25 26 27#ifdef __cplusplus 28extern "C" { 29#endif 30 31 32#if !defined(_W64) 33#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 34#define _W64 __w64 35#else 36#define _W64 37#endif 38#endif 39 40/* Define _CRTIMP */ 41 42#ifndef _CRTIMP 43#ifdef _DLL 44#define _CRTIMP __declspec(dllimport) 45#else /* ndef _DLL */ 46#define _CRTIMP 47#endif /* _DLL */ 48#endif /* _CRTIMP */ 49 50/* Define __cdecl for non-Microsoft compilers */ 51 52#if ( !defined(_MSC_VER) && !defined(__cdecl) ) 53#define __cdecl 54#endif 55 56 57/* Define NULL pointer value */ 58 59#ifndef NULL 60#ifdef __cplusplus 61#define NULL 0 62#else 63#define NULL ((void *)0) 64#endif 65#endif 66 67 68/* Declare reference to errno */ 69 70#if defined(_MT) || defined(_DLL) 71_CRTIMP extern int * __cdecl _errno(void); 72#define errno (*_errno()) 73#else /* ndef _MT && ndef _DLL */ 74_CRTIMP extern int errno; 75#endif /* _MT || _DLL */ 76 77 78/* Define the implementation dependent size types */ 79 80#ifndef _INTPTR_T_DEFINED 81#ifdef _WIN64 82typedef __int64 intptr_t; 83#else 84typedef _W64 int intptr_t; 85#endif 86#define _INTPTR_T_DEFINED 87#endif 88 89#ifndef _UINTPTR_T_DEFINED 90#ifdef _WIN64 91typedef unsigned __int64 uintptr_t; 92#else 93typedef _W64 unsigned int uintptr_t; 94#endif 95#define _UINTPTR_T_DEFINED 96#endif 97 98#ifndef _PTRDIFF_T_DEFINED 99#ifdef _WIN64 100typedef __int64 ptrdiff_t; 101#else 102typedef _W64 int ptrdiff_t; 103#endif 104#define _PTRDIFF_T_DEFINED 105#endif 106 107 108#ifndef _SIZE_T_DEFINED 109#ifdef _WIN64 110typedef unsigned __int64 size_t; 111#else 112typedef _W64 unsigned int size_t; 113#endif 114#define _SIZE_T_DEFINED 115#endif 116 117 118#ifndef _WCHAR_T_DEFINED 119typedef unsigned short wchar_t; 120#define _WCHAR_T_DEFINED 121#endif 122 123/* Define offsetof macro */ 124 125#ifdef _WIN64 126#define offsetof(s,m) (size_t)( (ptrdiff_t)&(((s *)0)->m) ) 127#else 128#define offsetof(s,m) (size_t)&(((s *)0)->m) 129#endif 130 131 132#ifdef _MT 133_CRTIMP extern unsigned long __cdecl __threadid(void); 134#define _threadid (__threadid()) 135_CRTIMP extern uintptr_t __cdecl __threadhandle(void); 136#endif 137 138 139#ifdef __cplusplus 140} 141#endif 142 143#endif /* _INC_STDDEF */

    MSVC 8 (.NET 2005)

    #SelectExpand
    1/*** 2*stddef.h - definitions/declarations for common constants, types, variables 3* 4* Copyright (c) Microsoft Corporation. All rights reserved. 5* 6*Purpose: 7* This file contains definitions and declarations for some commonly 8* used constants, types, and variables. 9* [ANSI] 10* 11* [Public] 12* 13****/ 14 15#if _MSC_VER > 1000 16#pragma once 17#endif 18 19#ifndef _INC_STDDEF 20#define _INC_STDDEF 21 22#include <crtdefs.h> 23 24#ifdef __cplusplus 25extern "C" { 26#endif 27 28/* Define NULL pointer value */ 29 30#ifndef NULL 31#ifdef __cplusplus 32#define NULL 0 33#else 34#define NULL ((void *)0) 35#endif 36#endif 37 38 39/* Declare reference to errno */ 40 41_CRTIMP extern int * __cdecl _errno(void); 42#define errno (*_errno()) 43 44 45/* Define offsetof macro */ 46 47#ifdef __cplusplus 48 49#ifdef _WIN64 50#define offsetof(s,m) (size_t)( (ptrdiff_t)&reinterpret_cast<const volatile char&>((((s *)0)->m)) ) 51#else 52#define offsetof(s,m) (size_t)&reinterpret_cast<const volatile char&>((((s *)0)->m)) 53#endif 54 55#else 56 57#ifdef _WIN64 58#define offsetof(s,m) (size_t)( (ptrdiff_t)&(((s *)0)->m) ) 59#else 60#define offsetof(s,m) (size_t)&(((s *)0)->m) 61#endif 62 63#endif /* __cplusplus */ 64 65#ifdef _MT 66_CRTIMP extern unsigned long __cdecl __threadid(void); 67#define _threadid (__threadid()) 68_CRTIMP extern uintptr_t __cdecl __threadhandle(void); 69#endif 70 71 72#ifdef __cplusplus 73} 74#endif 75 76#endif /* _INC_STDDEF */

    #SelectExpand
    1 2#ifndef _SIZE_T_DEFINED 3#ifdef _WIN64 4typedef unsigned __int64 size_t; 5#else 6typedef _W64 unsigned int size_t; 7#endif 8#define _SIZE_T_DEFINED 9#endif 10 11#ifndef _INTPTR_T_DEFINED 12#ifdef _WIN64 13typedef __int64 intptr_t; 14#else 15typedef _W64 int intptr_t; 16#endif 17#define _INTPTR_T_DEFINED 18#endif 19 20#ifndef _UINTPTR_T_DEFINED 21#ifdef _WIN64 22typedef unsigned __int64 uintptr_t; 23#else 24typedef _W64 unsigned int uintptr_t; 25#endif 26#define _UINTPTR_T_DEFINED 27#endif 28 29#ifndef _PTRDIFF_T_DEFINED 30#ifdef _WIN64 31typedef __int64 ptrdiff_t; 32#else 33typedef _W64 int ptrdiff_t; 34#endif 35#define _PTRDIFF_T_DEFINED 36#endif 37 38#ifndef _WCHAR_T_DEFINED 39typedef unsigned short wchar_t; 40#define _WCHAR_T_DEFINED 41#endif 42 43#ifndef _WCTYPE_T_DEFINED 44typedef unsigned short wint_t; 45typedef unsigned short wctype_t; 46#define _WCTYPE_T_DEFINED 47#endif

     1   2   3 


    Go to: