CLR 与 C++的常用类型转换笔记

来源:互联网 发布:广东省加工贸易数据 编辑:程序博客网 时间:2024/05/17 07:48

 

1. System::String 转换到 const wchar_t*

 
   1:  const wchar_t* ToUnmanagedUnicode( System::String^ str )
   2:  {
   3:      pin_ptr<const WCHAR> nativeString1  = PtrToStringChars( str );
   4:      return (const wchar_t*)nativeString1;
   5:  }

 

2.  const wchar_t* / const char* 转换到 System::String

   1:  const wchar_t* p= L"hello";
   2:   
   3:  System::String( p ).ToString();

 

3.  C++数值类型转CLR数值类型

   1:  int a;
   2:   
   3:  System::Int32 b = System::Int32( a );

 

4. HWND 转为IWin32Window

   1:  public ref class WindowWrapper : System::Windows::Forms::IWin32Window
   2:  {
   3:      public: WindowWrapper(IntPtr handle)
   4:      {
   5:          _hwnd = handle;
   6:      }
   7:   
   8:  public:
   9:      property IntPtr Handle
  10:      {
  11:          virtual IntPtr get(void){return _hwnd;};
  12:      };
  13:   
  14:      private: IntPtr _hwnd;
  15:  };
  16:   
  17:  HWND nativehwnd;
  18:  IWin32Window^ w = gcnew Managed::WindowWrapper( System::IntPtr( nativehwnd ) );

原创粉丝点击