From: Wu Y. <ad...@ne...> - 2002-05-30 06:22:41
|
I think only _MAX_PATH should be defined in stdlib.h, right? Best regards Wu Yongwei --- Original Message from Steven Edwards --- When I am building the wine dlls/programs, I keep getting a warning about MAX_PATH being redefined in WINE's windef.h from a previous definition in MINGW's stdlib.h. Its only a warning but is annoying as hell. Alexandre wont accept a work around patch because the windows headers define MAX_PATH in windef.h not stdlib.h. |
From: Wu Y. <ad...@ne...> - 2002-05-31 05:57:53
|
No, I think the first reference should be an error. I myself just verified that only _MAX_PATH exists in stdlib.h of MSVC 6. Best regards, Wu Yongwei --- Original Message from Earnir Boyd --- Steven Edwards wrote: > > I am using the current release of the w32api (1.4) and MSYS for my WINE > port. This is the first of two bugs I will need the Mingw teams help on. > > When I am building the wine dlls/programs, I keep getting a warning > about MAX_PATH being redefined in WINE's windef.h from a previous > definition in MINGW's stdlib.h. Its only a warning but is annoying as > hell. Alexandre wont accept a work around patch because the windows > headers define MAX_PATH in windef.h not stdlib.h. > This reference tells me that MAX_PATH is defined in stdlib.h: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/still/hh/st ill/wiasfncs_6uuh.asp This reference tells me that MAX_PATH is defined in windef.h: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fax/faxbosr ef_4rzs.asp > I can fix this myself and submit a patch to you, but I thought there may > be some MINGW specific reason why it was in stdlib.h > Your patch should merely consist of the proper #ifndef guards. Earnie. |
From: Steven E. <ste...@ya...> - 2002-05-31 08:24:05
|
I just installed VC6+sp3 Myself and you are right. Only _MAX_PATH is defined in stdlib. Mabey it has changed for Visual Stdio .Net? If not then we should fix ours and send a nice bug report to MSDN =). Thanks Steven > No, I think the first reference should be an error. > I myself just verified > that only _MAX_PATH exists in stdlib.h of MSVC 6. > This reference tells me that MAX_PATH is defined in > stdlib.h: > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/still/hh/st > ill/wiasfncs_6uuh.asp > > This reference tells me that MAX_PATH is defined in > windef.h: > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fax/faxbosr > ef_4rzs.asp __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com |
From: Earnie B. <ear...@ya...> - 2002-05-31 10:38:37
|
You may add _MAX_PATH definition to stdlib.h. However, simply removing MAX_PATH from stdlib.h isn't acceptable. It must go through a deprecation period so that anyone having used MAX_PATH from stdlib.h has a chance to do something about it. There's nothing wrong with proper #ifdef guards in both headers. Steven Edwards wrote: > > I just installed VC6+sp3 Myself and you are right. > Only _MAX_PATH is defined in stdlib. Mabey it has > changed for Visual Stdio .Net? If not then we should > fix ours and send a nice bug report to MSDN =). > > Thanks > Steven > > > No, I think the first reference should be an error. When I did the google search it pulled more than a few references, I just chose the first one I came to. Earnie. |
From: Wu Y. <ad...@ne...> - 2002-06-03 01:42:20
|
I just verified that MSVC 7 did not define MAX_PATH in stdlib.h, either. It should not be there, really. According to Microsoft conventions, all non-standard (C89 here) symbols defined in standard headers begin with an underline. I don't think it ever defined in MSVC stdlib.h, though I cannot verify MSVC 5 or earlier versions. And I don't suppose anybody should be using it from stdlib.h now. In your first reference the Microsoft developer might have been confused by the underscore issue and made a wrong statement. He did not find his problem because he always include windows.h. A reasonable guess? Best regards, Wu Yongwei --- Original Message from Earnie Boyd --- You may add _MAX_PATH definition to stdlib.h. However, simply removing MAX_PATH from stdlib.h isn't acceptable. It must go through a deprecation period so that anyone having used MAX_PATH from stdlib.h has a chance to do something about it. There's nothing wrong with proper #ifdef guards in both headers. Steven Edwards wrote: > > I just installed VC6+sp3 Myself and you are right. > Only _MAX_PATH is defined in stdlib. Mabey it has > changed for Visual Stdio .Net? If not then we should > fix ours and send a nice bug report to MSDN =). > > Thanks > Steven > > > No, I think the first reference should be an error. When I did the google search it pulled more than a few references, I just chose the first one I came to. Earnie. |
From: Paul G. <pga...@at...> - 2002-06-03 23:14:23
|
Hi folks, On 3 Jun 2002 at 9:42, Wu Yongwei wrote: > I just verified that MSVC 7 did not define MAX_PATH in stdlib.h, either. > > It should not be there, really. According to Microsoft conventions, all > non-standard (C89 here) symbols defined in standard headers begin with an > underline. I don't think it ever defined in MSVC stdlib.h, though I cannot > verify MSVC 5 or earlier versions. And I don't suppose anybody should be > using it from stdlib.h now. Well, according to the latest Platform SDK (November of last year), MAX_PATH is defined within WinDef.h. I do not think it was ever defined within stdlib.h, at least not by MS. So, if you are wanting to find MAX_PATH, you will find it is defined as 260 within WinDef.h (MS Platform SDK). stdlib.h thing might be an artifact of an older release of Mingw, however. Updating to newest release of Mingw would likely eliminate any questions re: stdlib.h having MAX_PATH defined. > > In your first reference the Microsoft developer might have been confused by > the underscore issue and made a wrong statement. He did not find his problem > because he always include windows.h. A reasonable guess? Wouldn't call that just a "reasonable" guess, but a fact. 98% chance that the particular developer didn't think beyond Windows.h since MSVC VSx usually defaults to including Windows.h even though the developer (newer MSVC developers are far more prone to this than the older MSVC developers) may not be aware of that particular default behavior. Fact is, if you want MAX_PATH defined, then you must, at the very least include WinDef.h. Windows.h automatically includes windef.h. Paul G. |
From: Steven E. <Ste...@ya...> - 2002-05-30 07:15:35
|
> I think only _MAX_PATH should be defined in stdlib.h, right? That is what I have gathered. If there isnt any reason for MAX_PATH being in stdlib.h I will submit a patch Friday. Thanks Steven "Every revolution was once a thought in one man's mind" - Ralph Waldo Emerson |
From: Paul G. <pga...@at...> - 2002-05-31 01:05:14
|
Welcome, Steve. On 30 May 2002 at 3:15, Steven Edwards wrote: > > I think only _MAX_PATH should be defined in stdlib.h, right? > > That is what I have gathered. If there isnt any reason for MAX_PATH > being in stdlib.h I will submit a patch Friday. I am strong believer in the fact that whenever possible, where a define is actually located should be as close to, if not identical to, where the documentation (MSDN) is saying it is supposed to be. When there are numerous thingies (I like the word) floating around which do not comply with the MSDN documentation then those things "should" be placed where they are supposed to be according to the MSDN documentation. This eliminates repetition and reduces the amount of confusion when it comes to tracking down causes of various bugs, etc. I do not promote this as "developer policy", but I state it as the way I like to do things. Paul G. |