System::String -> char* OR wchar_t*
이번절에서는 닷넷 프레임 워크의 System::String를 일반적으로 C++ 에서 사용할사용할 수 있는 char* 또는 wchar_t* 로 변환 해보도록 해봅시다. 간단한 코드라서코드라서 전체 소스와 주석으로 설명을 대신 하겠습니다.
#pragma once
#include <vcclr.h>
#include <atlstr.h>
#include <stdio.h>
#using#using <mscorlib.dll>
using namespace System;
using namespace System::Runtime::InteropServices;
namespace MainEngine {
public ref class MainRenderEngineMainRenderEngine
{
// TODO:TODO: Add your methods for this class here.
public:public:
bool Create(System::String^ strWindowText)
//// 유니코드 문자열에 할당
pin_ptr<constpin_ptr<const wchar_t> wch = PtrToStringChars(strWindowText);
MessageBox(NULL, wch, _T("유니코드"), MB_OK);
// 일반 char* 문자열로 변환
size_t sizeInBytes = ((strWindowText->Length + 1) * 2);2);
errno_t err = 0;0;
char *ch == (char *)malloc(sizeInBytes);
errerr = wcstombs_s(&convertedChars, ch, sizeInBytes, wch, sizeInBytes);
MessageBox(NULL, _T("char* 변환 에러"), _T("에러"), MB_OK);
}
}
'Programming > C++/CLI' 카테고리의 다른 글
C++/CLI & WCF Programming (1) | 2010.05.26 |
---|---|
Native C++ & C++ / CLI & C# 환경에서의 디버깅 (0) | 2010.05.26 |
CLI - 초무식, 초단순 암기용 저장글 (0) | 2010.05.26 |
Managed 문자열 -> Unmanaged 문자열 변환 (0) | 2010.05.26 |
C++/CLI 예제 (0) | 2010.05.25 |