반응형
Visual C++ 6.0 책에서
------------------------------
AfxMessageBox( "ABC" );
------------------------------
아래와 같은 소스코드를 실행하면 메시지박스가 뜬다는 설명이 있어서,
테스트 겸 해서 VS .NET 에서도 실행했더니 아래와 같은 메시지를 볼 수 있었다.
----------------------------------------------------------------------------------------------
error C2665: 'AfxMessageBox' : none of the 2 overloads could convert all the argument types
----------------------------------------------------------------------------------------------
작년 봄학기에 수업 들을때는 AfxMessageBox를 수도 없이 써왔는데! (물론 VC 6.0이었지만)
이런 기본적인것도 혼자서 해결할 수 없으면 앞으로 고생길이 훤할 것 같다는 생각에 구글링 고고
구글링을 하는 도중에 아래와 같은 친절[?]한 답글을 볼 수 있었다.
--------------------------------------------------
LPSTR, LPCSTR, char * => "문자열"
LPTSTR, LPCTSTR, TCHAR * => _T("문자열")
LPWSTR, LPCWSTR, WCHAR * => L"문자열"
- 출처는 디씨... 어느 갤인지는 가물가물 -
--------------------------------------------------
오호, AfxMessageBox는 첫번째 parameter로 LPCTSTR을 요구하니까 _T("ABC")를 하라는거냐?
시작한 김에 끝을 보자는 생각에 이번에는 std::string으로 된 문자열을 LPCTSTR로 바꿔보기로 하였다.
그래서 (LPCTSTR)(str.c_str())과 같은 C type casting, static_cast를 사용한 C++ type casting을 시도했으나
"ABC"을 원했지만 아쉽게도 "□C쳌쳌쳌쳌"이 나오는 것이다 ㅠㅠ
그래서 또 다시 시작한 구글링.... 이상한 자료들이 워낙 많이 나와서 고생했지만 결국 찾았으니..
--------------------------
string A = "ABC";
------------------------------
AfxMessageBox( "ABC" );
------------------------------
아래와 같은 소스코드를 실행하면 메시지박스가 뜬다는 설명이 있어서,
테스트 겸 해서 VS .NET 에서도 실행했더니 아래와 같은 메시지를 볼 수 있었다.
----------------------------------------------------------------------------------------------
error C2665: 'AfxMessageBox' : none of the 2 overloads could convert all the argument types
----------------------------------------------------------------------------------------------
작년 봄학기에 수업 들을때는 AfxMessageBox를 수도 없이 써왔는데! (물론 VC 6.0이었지만)
이런 기본적인것도 혼자서 해결할 수 없으면 앞으로 고생길이 훤할 것 같다는 생각에 구글링 고고
구글링을 하는 도중에 아래와 같은 친절[?]한 답글을 볼 수 있었다.
--------------------------------------------------
LPSTR, LPCSTR, char * => "문자열"
LPTSTR, LPCTSTR, TCHAR * => _T("문자열")
LPWSTR, LPCWSTR, WCHAR * => L"문자열"
- 출처는 디씨... 어느 갤인지는 가물가물 -
--------------------------------------------------
오호, AfxMessageBox는 첫번째 parameter로 LPCTSTR을 요구하니까 _T("ABC")를 하라는거냐?
시작한 김에 끝을 보자는 생각에 이번에는 std::string으로 된 문자열을 LPCTSTR로 바꿔보기로 하였다.
그래서 (LPCTSTR)(str.c_str())과 같은 C type casting, static_cast를 사용한 C++ type casting을 시도했으나
"ABC"을 원했지만 아쉽게도 "□C쳌쳌쳌쳌"이 나오는 것이다 ㅠㅠ
그래서 또 다시 시작한 구글링.... 이상한 자료들이 워낙 많이 나와서 고생했지만 결국 찾았으니..
--------------------------
string A = "ABC";
CA2CT str(A.c_str());
AfxMessageBox( str );
--------------------------
CA2CT는 convert from ANSI to LPCTSTR 이라고 한다......
어렵다 ㅠㅠ
반응형
'개발자이야기 > VC++' 카테고리의 다른 글
base64 암복호화 c/c++ (0) | 2010.11.30 |
---|---|
Visual Studio 2005에서 브라우저 도우미 개체 만들기(Windows IETechCol) (0) | 2010.10.13 |
[강좌] 인터넷 익스플로러에서 팝업창을 차단하는 BHO 모듈 개발하기 (0) | 2010.10.13 |
상호 형변환 (0) | 2010.02.11 |
int to String & String to int (0) | 2010.02.11 |