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

 

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 ) );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值