Lost Password?

Go Back   CodeCall Programming Forum > Software Development > C and C++ > Managed C++

Unregistered, Check out the Coder Battles in the Announcement and Game forums.

Managed C++ Visual Studio .NET managed C++ Topics

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 11-03-2005, 03:46 PM
Crane's Avatar   
Crane Crane is offline
Programming Expert
 
Join Date: Nov 2005
Posts: 399
Credits: 1
Rep Power: 13
Crane is on a distinguished road
Post Convert between managed and unmanaged

I found these browsing around on the internet (For Studio 2006):

Unmanaged to Managed:
------------------------------------
char* su;
String^ sm = gcnew String(su);

wchar_t* su;
String^ sm = gcnew String(su);

std::string su;
String^ sm = gcnew String(su.c_str());

std::wstring su;
String^ sm = gcnew String(su.c_str());

Managed to Unmanaged:
------------------------------------
Wide string version:
String^ sm = "Hello";
pin_ptr<wchar_t> pu = PtrToStringChars(sm);

// PtrToStringChars is an inline function in vcclr.h, and it returns
// a raw pointer to the internal representation of the String.
// After pinning "p", it can be passed to unmanaged code:
wchar_t* su = pu;
// when "pu" goes out of scope, "su" becomes invalid!

Ansi (8-bit) version:
ScopedHGlobal s_handle(Marshal::StringToHGlobalAnsi(sm));
char* su = s_handle.c_str();
// when "s_handle" goes out of scope, "su" becomes invalid!
Where ScopedHGlobal is a helper class written by myself:
using namespace System::Runtime::InteropServices;
public ref class ScopedHGlobal
{
public:
ScopedHGlobal(IntPtr p) : ptr(p) { }
~ScopedHGlobal() { Marshal::FreeHGlobal(ptr); }
char* c_str() {
return reinterpret_cast<char*>(ptr.ToPointer());
}
private:
System::IntPtr ptr;
};

Last edited by Crane; 11-03-2005 at 03:48 PM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Sponsored Links
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


All times are GMT -5. The time now is 07:09 PM.

Contest Stats

Xav ........ 1333.07
MeTh0Dz|Reb0rn ........ 1055.7
John ........ 881.37
morefood2001 ........ 879.43
marwex89 ........ 869.98
WingedPanther ........ 851.68
Brandon W ........ 757.44
chili5 ........ 312.39
Steve.L ........ 247.05
dcs ........ 217.87

Contest Rules

CodeCall Goal

Goal: 100,000 Posts
Complete: 82%

Ads