IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    C++ CLI 可变参数

    天下发表于 2016-09-01 06:48:00
    love 0
    namespace TK 
    {
        public enum class LogLevel { Kernel, Fatal, Error, Warning, Infomation, Debug};
        public ref class LogHelper
        {
        public:
            static bool Open(String^ filename);
            static void Close();
            static bool Write(LogLevel level,String^ format, array<Object^>^ args);
            static bool WriteLine(LogLevel level,String^ format, array<Object^>^ args);
            static void SetLevel(LogLevel level);
        };
    }


    static void MarshalString(String^ net, CString& os) {
        LPCTSTR chars = (LPCTSTR)(Marshal::StringToHGlobalUni(net)).ToPointer();
        os = chars;
        Marshal::FreeHGlobal(IntPtr((void*)chars));
    }
    #pragma unmanaged
    static CStringA CStrW2CStrA(const CStringW &cstrSrcW)
    {
        int len = WideCharToMultiByte(CP_UTF8, 0, LPCWSTR(cstrSrcW), -1, NULL, 0, NULL, NULL);
        char *str = new char[len];
        memset(str, 0, len);
        WideCharToMultiByte(CP_UTF8, 0, LPCWSTR(cstrSrcW), -1, str, len, NULL, NULL);
        CStringA cstrDestA = str;
        delete[] str;

        return cstrDestA;
    }
    #pragma managed


    天下 2016-09-01 14:48 发表评论


沪ICP备19023445号-2号
友情链接