C++/CLI : String 을 char* 로 변환 및 char* 을 String 로 변환
1. 문자열 변환
#include "stdafx.h"
#include "SCDSInfo.h"
#include <vcclr.h>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Runtime::InteropServices;
String^ pData = "Unicode String";
// String 을 const wchar_t* 으로 변환
pin_ptr<const wchar_t> wfilename = PtrToStringChars(pData);
// const wchar_t* 를 String 으로 변환
String^ convertFileName = gcnew String ( wfilename );
Debug::WriteLine(wcslen(wfilename), "[SendDataObject] wfilename Length ");
Debug::WriteLine(convertFileName, "[SendDataObject] convertFileName Value ");
// String 을 char* 으로 변환
IntPtr pDataPtr1 = Marshal::StringToHGlobalAnsi(pData);
char* charPtrA = (char*)pDataPtr1.ToPointer();
OutputDebugStringA(charPtrA);
// String 을 wchar_t* 으로 변환
IntPtr pDataPtr2 = Marshal::StringToHGlobalUni(pData);
wchar_t* charPtrW = (wchar_t*)pDataPtr2.ToPointer();
// char* 를 String 으로 변환
String^ convertStringA = gcnew String(charPtrA);
// wchat_t* 를 String 으로 변환
String^ convertStringW = gcnew String(charPtrW);
Debug::WriteLine(convertStringA, "[SendDataObject] convertStringA Value ");
Debug::WriteLine(convertStringW, "[SendDataObject] convertStringW Value ");
PtrToStringChars() 는 #include <vcclr.h> 해 줘야 한다.
'[====== Development ======] > C++' 카테고리의 다른 글
Google 의 C++ Coding Style 가이드 (0) | 2021.08.02 |
---|---|
Log4cxx Library Build (0) | 2021.07.30 |
[MFC] Resize에 따른 컨트롤 위치 이동 (0) | 2021.07.23 |
GetVersionExA 에러 (0) | 2021.07.22 |
C++ MBCS 경고 무시 (0) | 2021.06.08 |