Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 03-18-2005, 10:38 AM
sysadmin
Hill Giant
 
Join Date: Feb 2005
Posts: 163
Default

This might be irrelevant to the problem in VS2k3 but an interesting read, seems microsoft crippled the c compilers a long time ago due to a marketing decision.

Link

Jack Klein wrote:
Quote:
Re: Error C2177 Constant too big when compiling Gammal.c
On 3 Mar 2004 15:51:34 -0500, Antoun Kanawati <antounk@comcast.net> wrote in
comp.lang.c++.moderated:

Quote:
The constant is a "long double". VC++ 4.0 predates civilization and did not know about such types (long-double and long-long).
This is just plain wrong, at least about long double. Microsoft knew very well what long double was, from version 3.0 of their MS-DOS only Microsoft C compiler. They supported the Intel coprocessor/FPU 80 bit extended precision type.

This support continued through all of their 16-bit compilers (Microsoft C and C++ 7.0, and Visual C++ 1.52). It was only when they introduced Windows NT and 32 bit compilers that they made a marketing decision to drop extended precision type.

Their stated reason was that some of the processors for which they were planning to sell Windows NT did not have hardware support for floating point types wider than 64 bits. Their decision was that portability to other processors running Windows NT was more important than the programmer's decision whether or not to choose precision over compatibility.

You can see this on Microsoft's web site at the following link:

http://support.microsoft.com/support.../Q129/2/09.asp

Quote:
Try with a current gcc/g++ or VC++. I don't recall if VC++ 6.x has long doubles, but it's worth a try.
Visual C++ 4, 5, and 6 all supported long doubles. But they all implement long double as 64 bit FPU floating point types, identical with double. The last version of Visual C++ that supported 80 bit Intel FPU extended precision 80 bit types for long double was the last 16 bit compiler,
Visual C++ 1.52.

I wouldn't know if they have brought this support back in 7.0 or 7.1, but I doubt it.

Their marketing decision seriously cripples Visual C++ on the x86 for some types of serious numerical and engineering programming. Others, such as Borland and GCC, do not have this limitation.
.
__________________
Sysadmin.

Last edited by sysadmin; 03-18-2005 at 11:19 PM..
Reply With Quote
  #2  
Old 03-18-2005, 02:39 PM
sonicintuition
Hill Giant
 
Join Date: Jan 2005
Posts: 124
Default

Thanks guys. Now that I have a clearer picture of why this may be happening I'm not so damned confused. I'm not even going to try compiling this any more, nothing I've tried is making anything any better. Changing numbers around only leads to more constant too big errors on other lines in other files. Messing with something this deep is just too much for someone with almost 0 experience in C++ coding. So I'll just let the developers do their thing for now.

I'm still requesting a copy of DR3's Zone.exe from anyone generous enough, since that is now my only option of getting it. I just wanted to test it out on my server, see the new bug fixes in action, etc. If anyone would be willing to lend a hand PM me. Thank you.

Regards,
SI
Reply With Quote
  #3  
Old 03-18-2005, 03:18 PM
sysadmin
Hill Giant
 
Join Date: Feb 2005
Posts: 163
Default

I would suggest you register on a Microsoft support forum and post the problem there. I am not sure you will get a solution, but at least would make microsoft aware of the error you are having.
__________________
Sysadmin.
Reply With Quote
  #4  
Old 03-19-2005, 02:30 AM
sonicintuition
Hill Giant
 
Join Date: Jan 2005
Posts: 124
Default

I'll probably do that because, despite my frustration, I'd still like to learn how to program with C++ and I'm sure there is a wealth of knowledge to be had there. Thanks again for the advice.

I've been offered a copy of Zone.exe for DR3 so I won't be posting about this anymore. Thanks to all who tried to help.

Regards,
SI
Reply With Quote
  #5  
Old 03-19-2005, 05:01 PM
sysadmin
Hill Giant
 
Join Date: Feb 2005
Posts: 163
Default

It seems this will not change anytime soon since they are still using 64bit long double double for variable structure.

This is straight from MS Visual Studio website:

Quote:
Double Structure
Represents a double-precision floating point number.

For a list of all members of this type, see Double Members.

System.Object
System.ValueType
System.Double

[Visual Basic]
<Serializable>
Public Structure Double
Implements IComparable, IFormattable, IConvertible
[C#]
[Serializable]
public struct Double : IComparable, IFormattable, IConvertible
[C++]
[Serializable]
public __value struct Double : public IComparable, IFormattable,
IConvertible
[JScript] In JScript, you can use the structures in the .NET Framework, but you cannot define your own.

Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Remarks
The Double value type represents a double-precision 64-bit number with values ranging from negative 1.79769313486232e308 to positive 1.79769313486232e308, as well as positive or negative zero, PositiveInfinity, NegativeInfinity, and Not-a-Number (NaN).
__________________
Sysadmin.

Last edited by sysadmin; 03-20-2005 at 01:03 AM..
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 03:03 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3