수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1620527
  • Today | 389
  • Yesterday | 670

1 Articles, Search for '포인터 변수'

  1. 2007/03/19 포인터 변수를 검증하기위한 매크로
Programming/Win32 API2007/03/19 10:53

포인터 변수를 검증하기위한 매크로

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

1.요약

포인터가 올바른 메모리 블럭을 가리키고 있는지 조사할 수 있는 API 들이 몇 가지 있습니다. ( IsBadWritePtr() 을 MSDN 에서 찾으시면 비슷한 친구들까지 모두 찾을실 수 있을겁니다 )

MFC 에는 이 API를 사용해서 간단한 매크로를 만들어 두었습니다.


2.본문

바로 다음 두 친구가 그 매크로 입니다.

ASSERT_POINTER( pointer, pointerType); 

ASSERT_NULL_OR_POINTER( pointer, pointerType); 

개발자 입장에서는 이 매크로의 정의를 소스 코드로 보시는 게 더 이해하기 쉬울거라 생각됩니다.

#define ASSERT_POINTER(p, type) \ 

    ASSERT(((p) != NULL) && AfxIsValidAddress((p), sizeof(type), FALSE)) 



#define ASSERT_NULL_OR_POINTER(p, type) \ 

    ASSERT(((p) == NULL) || AfxIsValidAddress((p), sizeof(type), FALSE)) 

간단히 설명드리자면 ASSERT_POINTER 는 해당 포인터가 반드시 NULL이 아니고 올바르며 ASSERT_NULL_OR_POINTER 는 해당 포인터가 NULL이거나 올바른 포인터 라는 의미가 되겠습니다.

물론 문서화되어 있지 않은 매크로이지만, 내용이 아주 간단하므로 직접 만드는 것도 무리는 없기때문에 사용할만 하다고 하는군요.


3.예제


4.참고

Debugging Windows Program, Strategies, Tools, and Techniques for Visaul C++ Programmers p.95

AfxIsValidAddress()도 있네요.



- 2001.08.13 Smile Seo -
"Win32 API" 카테고리의 다른 글
  • Visual C++ 이 사용하는 확장자 살펴보기 (0)2007/03/21
  • 캐럿의 위치 알기 (0)2007/03/19
  • 포인터 변수를 검증하기위한 매크로 (0)2007/03/19
  • 프로파일링(Profiling) 기능 활용하기 (0)2007/03/19
  • Bitmap 이미지 resizing 하기 (0)2007/03/19
2007/03/19 10:53 2007/03/19 10:53
Posted by webdizen
Tags 매크로, 포인터 변수
No Trackback No Comment

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

Leave your greetings.

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

«Prev  1  Next»

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

Categories

전체 (2998)
Webdizen (134)
Life (6)
Diary (16)
Blog (9)
IDEA (1)
Travel (10)
Book (14)
Photo (7)
Movie (7)
Music (13)
Leisure Sports (10)
Funny (5)
Hardware (119)
Software (120)
Windows (5)
Unix & Linux (119)
Installation (4)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (805)
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 (3)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (3)
Network (66)
Web (78)
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

  • 기본 브라우저 실행
  • 화면 캡처
  • 화면 보호기 제어
  • SARG
  • Multi-Rank
  • 까무스 XO
  • proc 파일 시스템
  • XSLT
  • 양방향 트랜잭션 복제
  • Zlib
  • 추격자
  • JsUnit
  • 김중태
  • 스크린 샷
  • DFS
  • Browsing
  • 시스템 방어
  • 명령어
  • 소스 코드 공유
  • Tab

Recent Articles

  • ASCII Code의 CRLF 제거 방법.
  • Hadoop 에서 c++ API 이용시....
  • Ubuntu Linux에서 Hadoop 구....
  • 내 심장을 한껏 뛰게한 "국가....
  • 스타 스키마 데이터베이스 설....

Recent Comments

  • ■ 온라인카지노 ▶ http://L....
    asdf 10:36
  • 그리고 혹시 해외여행자보험....
    kim 11/05
  • ★★실제 바다게임장과 똑같....
    asdf 11/04
  • sbsyama.co.to← 짱5000만당....
    asdf 11/04
  • ♡KicaZ??o(???) 바카라사....
    fdsf3fass 11/03

Recent Trackbacks

  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 02/11
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007
  • 마방진을 구하는 프로그램.
    Oranzie's BLOG 3 2007

Archive

  • 2009/09 (3)
  • 2009/08 (1)
  • 2009/03 (1)
  • 2009/02 (9)
  • 2009/01 (13)

Calendar

«   2009/11   »
일 월 화 수 목 금 토
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          

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.