수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1691132
  • Today | 438
  • Yesterday | 628

1 Articles, Search for 'String Conversion'

  1. 2007/03/08 String Conversion Macro
Programming/ATL/COM2007/03/08 09:53

String Conversion Macro

원본 : http://www.debuglab.com/knowledge/stringconversion.html

1.요약

ATL/MFC에서 공통적으로 제공하고 있는 문자열 변환 매크로에 대해서 살짝 알아보고, 사용법을 정리합니다.


2.본문

COM에서 사용하는 문자열은 크게 2가지가 있습니다.

한가지-> OLECHAR
두가지-> BSTR
-----------------------------------------------------------------

OLECHAR은 다음과 같이 정의됩니다.

Win32,Solaris --> wchar_t 

Win16,Mac --> char 

하지만 무엇보다도 중요한 점은 실제 OLECHAR의 타입이 무엇인지는 중요하지 않다는 점입니다.

-----------------------------------------------------------------

BSTR은 단순히 OLESTR 앞에 문자열의 길이를 저장하는 타입입니다.

-----------------------------------------------------------------

문자열 변환 매크로는 아주 명확한 이름을 가지고 있습니다.
매크로에서 쓰이는 다음과 같은 축약어는 다음의 뜻을 가지고 있습니다.

T --> TCHAR 포인터 = LPTSTR
W --> wchar_t 포인터 = LPWSTR
A --> MBCS/ANSI 포인터 = LPSTR
OLE --> OLECHAR 포인터 = LPOLESTR
C --> const

-----------------------------------------------------------------

만약에 TCHAR 문자열을 OLECHAR 문자열로 변경하고 싶으시다면 다음과 같은 예를 참고하십시오

STDMETHODIMP put_Name( /* [in] */ const OLECHAR* pName); 



void SetName( LPTSTR lpsz) 

{ 

    USES_CONVERSION; 

    ... 

    pObj->put_Name( T2OLE(lpsz)); 

} 


USES_VONVERSION

문자열 변환 매크로를 사용하실때 한 번 써주시면 됩니다.

 T2OLE(lpsz) 

TCHAR 를 OLECHAR로 바꾸겠다는 의미심장한 각오를 느낄 수 있습니다.

---------------------------------------------------------------

단, 다른 타입의 문자열에서 BSTR 문자열로 바꾸실때만 약간의 제약이 있습니다. 문자열 변환에 사용한 버퍼를 직접 비워주어야 한다는 점입니다. 다음 참고 하십시오.

void SetName(LPTSTR lpsz) 

{ 

    USES_CONVERSION; 

    ... 

    BSTR bstr = T2BSTR(lpsz); 

    pObj->put_Name(bstr); 

    ::SysFreeString(bstr); // 여기요 

} 

----------------------------------------------------------------

MSDN 에서 다음 토픽을 참조하시면 큰 도움이 될거라 믿습니다.

TN059: Using MFC MBCS/Unicode Conversion Macros
3.예제



4.참고

ATL Internals


- 2001.08.13 Smile Seo -

"ATL/COM" 카테고리의 다른 글
  • 웹페이지가 이동될때 진입하는 함수 (0)2007/03/17
  • ActiveX를 무조건 다운로드 하게 하기 (0)2007/03/15
  • String Conversion Macro (0)2007/03/08
  • Unicode/MBCS(DBCS)/ANSI/TCHAR (0)2007/03/05
  • [ATL] 새로운 인터페이스 추가하기 (0)2007/03/05
2007/03/08 09:53 2007/03/08 09:53
Posted by webdizen
Tags String Conversion
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2681

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • nested interrupt
  • Density
  • IIS7
  • 헤네지 XO
  • 임페리얼 클래식
  • Email
  • 고급 명령
  • Data File
  • SSTP
  • 쿼리 커버
  • 연쇄살인범
  • WinAPI
  • 인터페이스
  • Multi-Processor
  • Coding
  • 프로세스
  • 최후의 결전
  • Dll
  • 연결 문자열
  • 세션빈

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08
  • 재밌네요~ 첫번째꺼는 요즘....
    Hybrid 2009

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.