Solved

how to convert from managed string to char* in c++\clr ?

Posted on 2009-04-04
3
2,088 Views
Last Modified: 2013-12-17
how to  convert from managed string to char* in c++\clr ?
here is my try below:
but it returns an error:
error C2682: cannot use 'safe_cast' to convert from ' System::String ^ '  to ' char * '

System::String^ s = "test";

	cascade_name = safe_cast<char*,System::String^>(s);

\\ Important note: cascade_name variable is a global variable which has type of char*

\\ from header file: char* cascade_name;

Open in new window

0
Comment
Question by:Ameerh24
3 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 350 total points
ID: 24067755
Take a look at http://support.microsoft.com/kb/311259 ("How to convert from System::String* to Char* in Visual C++ ") whichalso covers your problem (scroll down for the full code):
		     System::String ^ str = "Hello world\n";

 

	     //method 1

	     pin_ptr<const wchar_t> str1 = PtrToStringChars(str);

     	wprintf(str1);	

 

	     //method 2

	     char* str2 = (char*)Marshal::StringToHGlobalAnsi(str).ToPointer();

     	printf(str2);

	     Marshal::FreeHGlobal((IntPtr)str2);

 

	     //method 3

	     CString str3(str); 

	     wprintf(str3);

 

     	//method 4

#if _MSC_VER > 1499 // Visual C++ 2008 only

	     marshal_context ^ context = gcnew marshal_context();

	     const char* str4 = context->marshal_as<const char*>(str);

     	puts(str4);

	     delete context;

#endif

Open in new window

0
 

Assisted Solution

by:mayank13
mayank13 earned 150 total points
ID: 24105961
Let say we have :

string s1 = "abcd";

char *c1;

Now to convert string to char just use strcpy() having ->

strcpy( c1, s1.c_str());

Note: s1.c_str(), tell compiler to read string as char* string.

0
 

Author Closing Comment

by:Ameerh24
ID: 31566548
thanks, the solution woks fine
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
C++ mouse_event mouse look 7 64
How do I save this device context as a .bmp or a picture of some kind? 2 44
DataGridView Events ? 3 37
Variable Event ? 3 17
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now