From 295432673cb1f80735074bab0c1367e22af00c7e Mon Sep 17 00:00:00 2001 From: Tom Lint Date: Thu, 30 May 2013 21:42:33 +0200 Subject: [PATCH] Removed old precompiled libs Added stuff to System.Xml Updated code in the System namespace --- .gitignore | 4 + include/System/Object.h | 14 +- include/System/Xml/Interfaces.h | 14 +- include/System/Xml/Schema/Enums.h | 240 ++++++++++++++++++ include/System/Xml/Schema/Interfaces.h | 43 ++++ include/System/Xml/XPath/Enums.h | 118 +++++++++ include/System/Xml/XPath/Interfaces.h | 23 ++ include/System/Xml/XmlNode.h | 75 ++++++ src/libSystem.Xml/libSystem.Xml.vcxproj | 5 + .../libSystem.Xml.vcxproj.filters | 15 ++ src/libmscorlib/DateTime.cpp | 2 +- src/libmscorlib/Double.cpp | 4 +- src/libmscorlib/Int64.cpp | 7 +- src/libmscorlib/Object.cpp | 6 +- src/libmscorlib/Path.cpp | 2 +- src/libmscorlib/TimeSpan.cpp | 2 +- src/libmscorlib/UInt64.cpp | 4 +- 17 files changed, 553 insertions(+), 25 deletions(-) create mode 100644 include/System/Xml/Schema/Enums.h create mode 100644 include/System/Xml/Schema/Interfaces.h create mode 100644 include/System/Xml/XPath/Enums.h create mode 100644 include/System/Xml/XPath/Interfaces.h create mode 100644 include/System/Xml/XmlNode.h diff --git a/.gitignore b/.gitignore index ae83298..6cfd5ed 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,10 @@ local.properties *_i.c *_p.c [Bb]uild[Ll]og.htm +<<<<<<< Updated upstream +======= +*.a +>>>>>>> Stashed changes *.ilk *.meta *.o diff --git a/include/System/Object.h b/include/System/Object.h index 7f4d299..6fcf8c2 100644 --- a/include/System/Object.h +++ b/include/System/Object.h @@ -1,9 +1,9 @@ -/******************************************************** - * Object.h * - * * - * XFX Object definition file * - * Copyright © XFX Team. All Rights Reserved * - ********************************************************/ +/***************************************************************************** + * Object.h * + * * + * XFX Object definition file * + * Copyright (c) XFX Team. All Rights Reserved * + *****************************************************************************/ #ifndef _SYSTEM_OBJECT_ #define _SYSTEM_OBJECT_ @@ -15,7 +15,7 @@ namespace System { public: virtual bool Equals(Object const * const obj) const; - static bool Equals(const Object* objA, const Object* objB); + static bool Equals(Object const * const objA, Object const * const objB); virtual int GetHashCode() const; virtual int GetType() const =0; static bool ReferenceEquals(const Object& objA, const Object& objB); diff --git a/include/System/Xml/Interfaces.h b/include/System/Xml/Interfaces.h index eebd424..16f51a5 100644 --- a/include/System/Xml/Interfaces.h +++ b/include/System/Xml/Interfaces.h @@ -2,7 +2,7 @@ #define _SYSTEM_XML_INTERFACES_ #include -#include +#include #include using namespace System::Collections::Generic; @@ -17,7 +17,9 @@ namespace System interface IHasXmlNode { public: - virtual XmlNode GetNode()=0; + virtual XmlNode* GetNode()=0; + + virtual ~IHasXmlNode() { } }; // Provides an interface to enable a class to return line and position information. @@ -28,6 +30,8 @@ namespace System virtual int LineNumber(); virtual int LinePosition(); + + virtual ~IXmlLineInfo() { } }; // Provides read-only access to a set of prefix and namespace mappings. @@ -35,8 +39,10 @@ namespace System { public: virtual IDictionary* GetNamespacesInScope(const XmlNamespaceScope_t scope) const=0; - virtual String LookupNamespace(const String prefix) const=0; - virtual String LookupPrefix(const String namespaceName) const=0; + virtual String LookupNamespace(const String& prefix) const=0; + virtual String LookupPrefix(const String& namespaceName) const=0; + + virtual ~IXmlNamespaceResolver() { } }; } } diff --git a/include/System/Xml/Schema/Enums.h b/include/System/Xml/Schema/Enums.h new file mode 100644 index 0000000..df3ac53 --- /dev/null +++ b/include/System/Xml/Schema/Enums.h @@ -0,0 +1,240 @@ +/***************************************************************************** + * Enums.h * + * * + * System::Xml::Schema Enumerations definition file. * + * Copyright (c) XFX Team. All rights reserved. * + *****************************************************************************/ +#ifndef _SYSTEM_XML_SCHEMA_ENUMS_H +#define _SYSTEM_XML_SCHEMA_ENUMS_H + +namespace System +{ + namespace Xml + { + namespace Schema + { + struct XmlSchemaContentProcessing + { + enum type + { + // Document items are not validated. + None, + // Document items must consist of well-formed XML and are not validated by the schema. + Skip, + // If the associated schema is found, the document items will be validated. No errors will be thrown otherwise. + Lax, + // The schema processor must find a schema associated with the indicated namespace to validate the document items. + Strict + }; + }; + + struct XmlSchemaContentType + { + enum type + { + // Text-only content. + TextOnly, + // Empty content. + Empty, + // Element-only content. + ElementOnly, + // Mixed content. + Mixed + }; + }; + + struct XmlSchemaDatatypeVariety + { + enum type + { + // A W3C XML schema atomic type. + Atomic, + // A W3C XML schema list type. + List, + // A W3C XML schema union type. + Union + }; + }; + + struct XmlSchemaDerivationMethod + { + enum type + { + // #all. Refers to all derivation methods. + All = 255, + // Override default derivation method to allow any derivation. + Empty = 0, + // Refers to derivations by Extension. + Extension = 2, + // Refers to derivations by List. + List = 8, + // Accepts the default derivation method. + None = 256, + // Refers to derivations by Restriction. + Restriction = 4, + // Refers to derivations by Substitution. + Substitution = 1, + // Refers to derivations by Union. + Union = 16 + }; + }; + + struct XmlSchemaForm + { + enum type + { + // Element and attribute form is not specified in the schema. + None, + // Elements and attributes must be qualified with a namespace prefix. + Qualified, + // Elements and attributes are not required to be qualified with a namespace prefix. + Unqualified + }; + }; + + struct XmlSchemaUse + { + enum type + { + // Attribute use not specified. + None, + // Attribute is optional. + Optional, + // Attribute cannot be used. + Prohibited, + // Attribute must appear once. + Required + }; + }; + + struct XmlSchemaValidationFlags + { + enum type + { + // Allow xml:* attributes even if they are not defined in the schema. The attributes will be validated based on their data type. + AllowXmlAttributes = 16, + // Do not process identity constraints, inline schemas, schema location hints, or report schema validation warnings. + None = 0, + // Process identity constraints (xs:ID, xs:IDREF, xs:key, xs:keyref, xs:unique) encountered during validation. + ProcessIdentityConstraints = 8, + // Process inline schemas encountered during validation. + ProcessInlineSchema = 1, + // Process schema location hints (xsi:schemaLocation, xsi:noNamespaceSchemaLocation) encountered during validation. + ProcessSchemaLocation = 2, + // Report schema validation warnings encountered during validation. + ReportValidationWarnings = 4 + }; + }; + + struct XmlSchemaValidity + { + enum type + { + // The validity of the XML item is not known. + NotKnown, + // The XML item is valid. + Valid, + // The XML item is invalid. + Invalid + }; + }; + + struct XmlSeverityType + { + enum type + { + // Indicates a validation error occurred when validating the instance document. This applies to document type definitions (DTDs) and XML Schema definition language (XSD) schemas. The World Wide Web Consortium (W3C) validity constraints are considered errors. If no validation event handler has been created, errors throw an exception. + Error, + // Indicates that a validation event occurred that is not an error. A warning is typically issued when there is no DTD, or XML Schema to validate a particular element or attribute against. Unlike errors, warnings do not throw an exception if there is no validation event handler. + Warning + }; + }; + + struct XmlTypeCode + { + enum type + { + // Any atomic value of a union. + AnyAtomicType = 10, + // A W3C XML Schema xs:anyURI type. + AnyUri = 28, + // This value supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Attribute = 5, + // A W3C XML Schema xs:base64Binary type. + Base64Binary = 27, + // A W3C XML Schema xs:boolean type. + Boolean = 13, + // A W3C XML Schema xs:byte type. + Byte = 46, + // This value supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Comment = 8, + // A W3C XML Schema xs:date type. + Date = 20, + // A W3C XML Schema xs:dateTime type. + DateTime = 18, + // This value supports the .NET Framework infrastructure and is not intended to be used directly from your code. + DayTimeDuration = 54, + // A W3C XML Schema xs:decimal type. + Decimal = 14, + // This value supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Document = 3, + // A W3C XML Schema xs:double type. + Double = 16, + // A W3C XML Schema xs:Duration type. + Duration = 17, + // This value supports the .NET Framework infrastructure and is not intended to be used directly from your code. + Element = 4, + // A W3C XML Schema xs:ENTITY type. + Entity = 39, + // A W3C XML Schema xs:float type. + Float = 15, + // A W3C XML Schema xs:gDay type. + GDay = 24, + // A W3C XML Schema xs:gMonth type. + GMonth = 25, + // A W3C XML Schema xs:gMonthDay type. + GMonthDay = 23, + // A W3C XML Schema xs:gYear type. + GYear = 22, + // A W3C XML Schema xs:gYearMonth type. + GYearMonth = 21, + // A W3C XML Schema xs:hexBinary type. + HexBinary = 26, + // A W3C XML Schema xs:ID type. + Id = 37, + // A W3C XML Schema xs:IDREF type. + Idref = 38, + // A W3C XML Schema xs:int type. + Int = 44, + // A W3C XML Schema xs:integer type. + Integer = 40, + // An item such as a node or atomic value. + Item = 1, + }; + }; + + // Provides information about the validation mode of any and anyAttribute element replacements. + typedef XmlSchemaContentProcessing::type XmlSchemaContentProcessing_t; + // Enumerations for the content model of the complex type. This represents the content in the post-schema-validation information set (infoset). + typedef XmlSchemaContentType::type XmlSchemaContentType_t; + // Specifies the W3C XML schema data type variety of the type. + typedef XmlSchemaDatatypeVariety::type XmlSchemaDatatypeVariety_t; + // Provides different methods for preventing derivation. + typedef XmlSchemaDerivationMethod::type XmlSchemaDerivationMethod_t; + // Indicates if attributes or elements need to be qualified with a namespace prefix. + typedef XmlSchemaForm::type XmlSchemaForm_t; + // Indicator of how the attribute is used. + typedef XmlSchemaUse::type XmlSchemaUse_t; + // Specifies schema validation options used by the System::Xml::Schema::XmlSchemaValidator and System::Xml::XmlReader classes. + typedef XmlSchemaValidationFlags::type XmlSchemaValidationFlags_t; + // Represents the validity of an XML item validated by the System.Xml.Schema.XmlSchemaValidator class. + typedef XmlSchemaValidity::type XmlSchemaValidity_t; + // Represents the severity of the validation event. + typedef XmlSeverityType::type XmlSeverityType_t; + // Represents the W3C XML Schema Definition Language (XSD) schema types. + typedef XmlTypeCode::type XmlTypeCode_t; + } + } +} + +#endif // _SYSTEM_XML_SCHEMA_ENUMS_H diff --git a/include/System/Xml/Schema/Interfaces.h b/include/System/Xml/Schema/Interfaces.h new file mode 100644 index 0000000..e29e746 --- /dev/null +++ b/include/System/Xml/Schema/Interfaces.h @@ -0,0 +1,43 @@ +/***************************************************************************** + * Interfaces.h * + * * + * System::Xml::Schema Interfaces definition file. * + * Copyright (c) XFX Team. All rights reserved. * + *****************************************************************************/ +#ifndef _SYSTEM_XML_SCHEMA_INTERFACES_H +#define _SYSTEM_XML_SCHEMA_INTERFACES_H + +#include + +#include "Enums.h" + +namespace System +{ + namespace Xml + { + namespace Schema + { + class XmlSchemaAttribute; + class XmlSchemaElement; + class XmlSchemaSimpleType; + class XmlSchemaType; + + // Defines the post-schema-validation infoset of a validated XML node. + interface IXmlSchemaInfo + { + public: + virtual bool IsDefault() =0; + virtual bool IsNil() =0; + virtual XmlSchemaSimpleType* getMemberType() =0; + virtual XmlSchemaAttribute* getSchemaAttribute() =0; + virtual XmlSchemaElement* getSchemaElement() =0; + virtual XmlSchemaType* SchemaType() =0; + virtual XmlSchemaValidity_t getValidity() =0; + + ~IXmlSchemaInfo() { } + }; + } + } +} + +#endif // _SYSTEM_XML_SCHEMA_INTERFACES_H diff --git a/include/System/Xml/XPath/Enums.h b/include/System/Xml/XPath/Enums.h new file mode 100644 index 0000000..e5abb60 --- /dev/null +++ b/include/System/Xml/XPath/Enums.h @@ -0,0 +1,118 @@ + +namespace System +{ + namespace Xml + { + namespace XPath + { + struct XmlCaseOrder + { + enum type + { + // Ignore the case. + None, + // Uppercase letters are sorted before lowercase letters. + UpperFirst, + // Lowercase letters are sorted before uppercase letters. + LowerFirst + }; + }; + + struct XmlDataType + { + enum type + { + // Values are sorted alphabetically. + Text = 1, + // Values are sorted numerically. + Number + }; + }; + + struct XmlSortOrder + { + enum type + { + // Nodes are sorted in ascending order. For example, if the numbers 1,2,3, and 4 are sorted in ascending order, they appear as 1,2,3,4. + Ascending = 1, + // Nodes are sorted in descending order. For example, if the numbers 1,2,3, and 4 are sorted in descending order, they appear as, 4,3,2,1. + Descending + }; + }; + + struct XPathNamespaceScope + { + enum type + { + // Returns all namespaces defined in the scope of the current node. This includes the xmlns:xml namespace which is always declared implicitly. The order of the namespaces returned is not defined. + All, + // Returns all namespaces defined in the scope of the current node, excluding the xmlns:xml namespace. The xmlns:xml namespace is always declared implicitly. The order of the namespaces returned is not defined. + ExcludeXml, + // Returns all namespaces that are defined locally at the current node. + Local + }; + }; + + struct XPathNodeType + { + enum type + { + // The root node of the XML document or node tree. + Root, + // An element, such as . + Element, + // An attribute, such as id='123'. + Attribute, + // A namespace, such as xmlns="namespace". + Namespace, + // The text content of a node. Equivalent to the Document Object Model (DOM) Text and CDATA node types. Contains at least one character. + Text, + // A node with white space characters and xml:space set to preserve. + SignificantWhitespace, + // A node with only white space characters and no significant white space. White space characters are #x20, #x9, #xD, or #xA. + Whitespace, + // A processing instruction, such as . This does not include XML declarations, which are not visible to the System::Xml::XPath::XPathNavigator class. + ProcessingInstruction, + // A comment, such as + Comment, + // Any of the System::Xml::XPath::XPathNodeType node types. + All + }; + }; + + struct XPathResultType + { + enum type + { + // Any of the XPath node types. + Any = 5, + // A System::Boolean true or false value. + Boolean = 2, + // The expression does not evaluate to the correct XPath type. + Error = 6, + // A tree fragment. + Navigator = 1, + // A node collection. + NodeSet = 3, + // A numeric value. + Number = 0, + // A System::String value. + String = 4, + }; + }; + + // Specifies the sort order for uppercase and lowercase letters. + typedef XmlCaseOrder::type XmlCaseOrder_t; + // Specifies the data type used to determine sort order. + typedef XmlDataType::type XmlDataType_t; + // Specifies the sort order. + typedef XmlSortOrder::type XmlSortOrder_t; + // Defines the namespace scope. + typedef XPathNamespaceScope::type XPathNamespaceScope_t; + // Defines the XPath node types that can be returned from the System::Xml::XPath::XPathNavigator class. + typedef XPathNodeType::type XPathNodeType_t; + // Specifies the return type of the XPath expression. + typedef XPathResultType::type XPathResultType_t; + } + } +} diff --git a/include/System/Xml/XPath/Interfaces.h b/include/System/Xml/XPath/Interfaces.h new file mode 100644 index 0000000..0d7faba --- /dev/null +++ b/include/System/Xml/XPath/Interfaces.h @@ -0,0 +1,23 @@ + +#include + +namespace System +{ + namespace Xml + { + namespace XPath + { + class XPathNavigator; + + // Provides an accessor to the System::Xml::XPath::XPathNavigator class. + interface IXPathNavigable + { + public: + // Returns a new System.Xml.XPath.XPathNavigator object. + virtual XPathNavigator* CreateNavigator(); + + virtual ~IXPathNavigable() { } + }; + } + } +} diff --git a/include/System/Xml/XmlNode.h b/include/System/Xml/XmlNode.h new file mode 100644 index 0000000..9e8b4b6 --- /dev/null +++ b/include/System/Xml/XmlNode.h @@ -0,0 +1,75 @@ + +#include +#include +#include +#include + +using namespace System::Xml::Schema; +using namespace System::Xml::XPath; + +namespace System +{ + class XmlAttributeCollection; + class XmlDocument; + class XmlElement; + class XmlNamespaceManager; + class XmlNodeList; + class XmlWriter; + + namespace Xml + { + // Represents a single node in the XML document. + class XmlNode : public IXPathNavigable, public Object + { + public: + virtual XmlAttributeCollection* getAttributes(); + virtual String getBaseURI(); + virtual XmlNodeList getChildNodes(); + virtual XmlNode* getFirstChild(); + virtual bool HasChildNodes(); + virtual String getInnerText(); + virtual void setInnerText(const String& value); + virtual String getInnerXml(); + virtual void setInnerXml(const String& value); + virtual bool IsReadOnly(); + virtual XmlNode* getLastChild(); + virtual String getLocalName() =0; + virtual String getName() =0; + virtual String getNamespaceURI(); + virtual XmlNode* getNextSibling(); + virtual XmlNodeType_t getNodeType() =0; + virtual String getOuterXml(); + virtual XmlDocument* getOwnerDocument(); + virtual XmlNode* getParentNode(); + virtual String getPrefix(); + virtual void setPrefix(const String& value); + virtual XmlNode* getPreviousSibling(); + virtual IXmlSchemaInfo* getSchemaInfo(); + //virtual XmlElement* operator[](const String& localname, const String& ns); + virtual XmlElement* operator[](const String& name); + virtual String getValue() const; + virtual void setValue(const String& value); + + virtual XmlNode* AppendChild(XmlNode * const newChild); + virtual XmlNode* CloneNode(bool deep) =0; + XPathNavigator* CreateNavigator(); + virtual String GetNamespaceOfPrefix(const String& prefix); + virtual String GetPrefixOfNamespace(const String& namespaceURI); + int GetType() const; + virtual XmlNode* InsertAfter(XmlNode* newChild, XmlNode* refChild); + virtual XmlNode* InsertBefore(XmlNode* newChild, XmlNode* refChild); + virtual void Normalize(); + virtual XmlNode* PrependChild(XmlNode* newChild); + virtual void RemoveAll(); + virtual XmlNode* RemoveChild(XmlNode* oldChild); + virtual XmlNode* ReplaceChild(XmlNode* newChild, XmlNode* oldChild); + XmlNodeList SelectNodes(const String& xpath); + XmlNodeList SelectNodes(const String& xpath, XmlNamespaceManager nsmgr); + XmlNode* SelectSingleNode(const String& xpath); + XmlNode* SelectSingleNode(const String& xpath, XmlNamespaceManager nsmgr); + virtual bool Supports(const String& feature, const String& version); + virtual void WriteContentTo(XmlWriter * const w) =0; + virtual void WriteTo(XmlWriter * const w) =0; + }; + } +} diff --git a/src/libSystem.Xml/libSystem.Xml.vcxproj b/src/libSystem.Xml/libSystem.Xml.vcxproj index a607ffc..c2deca6 100644 --- a/src/libSystem.Xml/libSystem.Xml.vcxproj +++ b/src/libSystem.Xml/libSystem.Xml.vcxproj @@ -72,6 +72,11 @@ + + + + + diff --git a/src/libSystem.Xml/libSystem.Xml.vcxproj.filters b/src/libSystem.Xml/libSystem.Xml.vcxproj.filters index 0f75514..d72b336 100644 --- a/src/libSystem.Xml/libSystem.Xml.vcxproj.filters +++ b/src/libSystem.Xml/libSystem.Xml.vcxproj.filters @@ -45,6 +45,21 @@ Header Files + + Header Files + + + Header Files\XPath + + + Header Files\XPath + + + Header Files\Schema + + + Header Files\Schema + diff --git a/src/libmscorlib/DateTime.cpp b/src/libmscorlib/DateTime.cpp index e3d8db6..a582248 100644 --- a/src/libmscorlib/DateTime.cpp +++ b/src/libmscorlib/DateTime.cpp @@ -82,7 +82,7 @@ namespace System void DateTime::InvalidTickValue(long long ticks) { - sassert(false, String::Format("Value %d is outside the valid range [0,%d].", ticks, MAX_VALUE_TICKS)); + sassert(false, String::Format("Value %ll is outside the valid range [0,%ll].", ticks, MAX_VALUE_TICKS)); } DateTime DateTime::Add(double value, int scale) diff --git a/src/libmscorlib/Double.cpp b/src/libmscorlib/Double.cpp index 33caaf3..364f310 100644 --- a/src/libmscorlib/Double.cpp +++ b/src/libmscorlib/Double.cpp @@ -110,12 +110,12 @@ namespace System const char* Double::ToString() const { - return String::Format("%d", value); + return String::Format("%g", value); } const char* Double::ToString(const double value) { - return String::Format("%d", value); + return String::Format("%g", value); } Double::operator double() const diff --git a/src/libmscorlib/Int64.cpp b/src/libmscorlib/Int64.cpp index fbe6a72..8abc453 100644 --- a/src/libmscorlib/Int64.cpp +++ b/src/libmscorlib/Int64.cpp @@ -34,9 +34,6 @@ namespace System bool Int64::Equals(Object const * const obj) const { - if (!obj) - return false; - return is(obj, this) ? *this == *(Int64 *)obj : false; } @@ -57,12 +54,12 @@ namespace System const char* Int64::ToString() const { - return String::Format("%i", value); + return String::Format("%lld", value); } const char* Int64::ToString(const long long value) { - return String::Format("%i", value); + return String::Format("%lld", value); } bool Int64::TryParse(const String& str, out long long* result) diff --git a/src/libmscorlib/Object.cpp b/src/libmscorlib/Object.cpp index fa78676..c69083d 100644 --- a/src/libmscorlib/Object.cpp +++ b/src/libmscorlib/Object.cpp @@ -35,9 +35,9 @@ namespace System return is(this, obj); } - bool Object::Equals(const Object* objA, const Object* objB) + bool Object::Equals(Object const * const objA, Object const * const objB) { - return ((objA == objB) || ((objA) && (objB) && objA->Equals(objB)) || (!objA) && (!objB)); + return ((objA == objB) || ((objA) && (objB) && objA->Equals(objB)) || ((!objA) && (!objB))); } int Object::GetHashCode() const @@ -69,5 +69,7 @@ namespace System { return (obj1->GetType() == obj2->GetType()); } + + return false; } } diff --git a/src/libmscorlib/Path.cpp b/src/libmscorlib/Path.cpp index c073f36..509f8d8 100644 --- a/src/libmscorlib/Path.cpp +++ b/src/libmscorlib/Path.cpp @@ -46,7 +46,7 @@ namespace System typedef struct { char cDriveLetter; - char* szDevice; + const char* szDevice; int iPartition; } stDriveMapping; diff --git a/src/libmscorlib/TimeSpan.cpp b/src/libmscorlib/TimeSpan.cpp index 1ee6171..ab65b1e 100644 --- a/src/libmscorlib/TimeSpan.cpp +++ b/src/libmscorlib/TimeSpan.cpp @@ -225,7 +225,7 @@ namespace System const char* TimeSpan::ToString() const { - return String::Format("Ticks: %l", _ticks); + return String::Format("Ticks: %ll", _ticks); } TimeSpan TimeSpan::operator +(const TimeSpan& other) diff --git a/src/libmscorlib/UInt64.cpp b/src/libmscorlib/UInt64.cpp index d7afe9a..b79e5e1 100644 --- a/src/libmscorlib/UInt64.cpp +++ b/src/libmscorlib/UInt64.cpp @@ -49,12 +49,12 @@ namespace System const char* UInt64::ToString() const { - return String::Format("%i", value); + return String::Format("%ull", value); } const char* UInt64::ToString(const ulong value) { - return String::Format("%i", value); + return String::Format("%ull", value); } bool UInt64::TryParse(const String& str, out ulong* result)