diff --git a/core/Common/String.cpp b/core/Common/String.cpp index 6200aaf1..cd44d168 100644 --- a/core/Common/String.cpp +++ b/core/Common/String.cpp @@ -46,6 +46,50 @@ e2d::String & e2d::String::operator=(const char *cstr) return (*this); } +e2d::String & e2d::String::format(const char * format, ...) +{ + std::string tmp; + + va_list marker = NULL; + va_start(marker, format); + + size_t num_of_chars = _vscprintf(format, marker); + + if (num_of_chars > tmp.capacity()) + { + tmp.resize(num_of_chars + 1); + } + + vsprintf_s(const_cast(tmp.data()), tmp.capacity(), format, marker); + + va_end(marker); + + m_str = static_cast(_bstr_t(tmp.c_str())); + return (*this); +} + +e2d::String & e2d::String::format(const wchar_t * format, ...) +{ + std::wstring tmp; + + va_list marker = NULL; + va_start(marker, format); + + size_t num_of_chars = _vscwprintf(format, marker); + + if (num_of_chars > tmp.capacity()) + { + tmp.resize(num_of_chars + 1); + } + + vswprintf_s(const_cast(tmp.data()), tmp.capacity(), format, marker); + + va_end(marker); + + m_str = tmp.c_str(); + return (*this); +} + e2d::String & e2d::String::operator=(const String &str) { m_str = str.m_str; diff --git a/core/Transition/ETransition.cpp b/core/Transition/Transition.cpp similarity index 100% rename from core/Transition/ETransition.cpp rename to core/Transition/Transition.cpp diff --git a/core/Transition/ETransitionEmerge.cpp b/core/Transition/TransitionEmerge.cpp similarity index 100% rename from core/Transition/ETransitionEmerge.cpp rename to core/Transition/TransitionEmerge.cpp diff --git a/core/Transition/ETransitionFade.cpp b/core/Transition/TransitionFade.cpp similarity index 100% rename from core/Transition/ETransitionFade.cpp rename to core/Transition/TransitionFade.cpp diff --git a/core/Transition/ETransitionMove.cpp b/core/Transition/TransitionMove.cpp similarity index 100% rename from core/Transition/ETransitionMove.cpp rename to core/Transition/TransitionMove.cpp diff --git a/core/ecommon.h b/core/ecommon.h index 9dde1c76..4b785361 100644 --- a/core/ecommon.h +++ b/core/ecommon.h @@ -148,9 +148,12 @@ public: // 将字符串转化为 bool 型 bool toBool() const; - // 将任意类型转化为字符串 + // 将数字转化为字符串 template - static String toString(const T value); + static String toString(T value); + + String& format(const char * format, ...); + String& format(const wchar_t * format, ...); // 赋值运算符 String& operator= (const String &); @@ -712,12 +715,11 @@ protected: // String 类模板函数定义 template -inline e2d::String e2d::String::toString(const T value) +inline e2d::String e2d::String::toString(T value) { - std::wostringstream ss; - ss << value; - String str = ss.str().c_str(); - return std::move(str); + String tmp; + tmp.m_str = std::to_wstring(value); + return std::move(tmp); } } \ No newline at end of file diff --git a/project/vs2017/Easy2D.vcxproj b/project/vs2017/Easy2D.vcxproj index 97e6fea6..c657b98e 100644 --- a/project/vs2017/Easy2D.vcxproj +++ b/project/vs2017/Easy2D.vcxproj @@ -240,10 +240,10 @@ - - - - + + + + diff --git a/project/vs2017/Easy2D.vcxproj.filters b/project/vs2017/Easy2D.vcxproj.filters index 853d15b8..9c947391 100644 --- a/project/vs2017/Easy2D.vcxproj.filters +++ b/project/vs2017/Easy2D.vcxproj.filters @@ -27,18 +27,6 @@ - - Transition - - - Transition - - - Transition - - - Transition - Base @@ -189,6 +177,18 @@ Tool + + Transition + + + Transition + + + Transition + + + Transition +