#pragma once #include #include int SEU_Rand(int ran); //自定义的随机数发生器 /************************************************************************/ /* 三种编码格式互转 UTF-8 <===> GB2312 ∧ ∧ | | | | ∨ ∨ Unicode UTF-8和GB2312可以用strlen来计算长度 Unicode要wsclen(p)*2=字符串长度. 因为unicode一个ansi字符也占2字节. 一个汉字也占2字节. */ /************************************************************************/ //UTF-8到GB2312的转换,返回的指针要delete extern AFX_EXT_API char* UTF8_To_GB2312(const char* utf8); extern AFX_EXT_API void UTF8_To_GB2312(const char* utf8, char* &gbOut); //string版 extern AFX_EXT_API std::string UTF8_To_GB2312(const std::string &utf8); //GB2312到UTF-8的转换,返回的指针要delete extern AFX_EXT_API char* GB2312_To_UTF8(const char* gb2312); //string版 extern AFX_EXT_API std::string GB2312_To_UTF8(const std::string &gb2312); //参数2是为了方便知道unicode的字符串长度.也可以用wsclen来计算该函数返回的unicode char*指针.来统计unicode的字符数.x2就是字符串长度 extern AFX_EXT_API char* UTF8_To_Unicode(const char* utf8, int & len); //string版 extern AFX_EXT_API std::wstring UTF8_To_Unicode(const std::string &utf8); extern AFX_EXT_API char* Unicode_To_UTF8(const char* unicode); //string版 extern AFX_EXT_API std::string Unicode_To_UTF8(const std::wstring &unicode); //等同于MByteToWChar. 内部调用了MByteToWChar extern AFX_EXT_API char* GB2312_To_Unicode(const char* gb2312, int & len); //string版 extern AFX_EXT_API std::wstring GB2312_To_Unicode(const std::string &gb2312); //等同与WCharToMByte 内部调用了WCharToMByte extern AFX_EXT_API char* Unicode_To_GB2312(const char* unicode); //string版 extern AFX_EXT_API std::string Unicode_To_GB2312(const std::wstring &unicode); /* 宽字符转多字节 注意返回的字符串不用后要delete 其实就是unicode 转ansi/gb2312 */ extern AFX_EXT_API CHAR* WCharToMByte(WCHAR* lpcwszStr); /* 多字节转宽字符 注意返回的字符串不用后要delete */ extern AFX_EXT_API WCHAR* MByteToWChar(CHAR* lpcstr); // //static inline std::string convWith(const std::wstring &src); // //static inline std::wstring convWith(const std::string &src);