수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1621043
  • Today | 423
  • Yesterday | 482

1 Articles, Search for 'SearchPath'

  1. 2007/02/22 SearchPath()의 리턴값 알아보기
Programming/Win32 API2007/02/22 09:05

SearchPath()의 리턴값 알아보기

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

1.요약

특정한 파일의 위치를 찾아주는 SearchPath()의 리턴값을 분석하여 봅시다.


2.본문

"Win32 Programmer's Reference"에서 "SearchPath()"는 다음과 같은 reture value를 갖고 있습니다.

The length (in characters) of the string copied to the buffer.
-or-
0 if the function fails [see "GetLastError()" in the "Win32 Programmer's Reference" for more information].

하지만, 만약 찾고자 하는 파일을 찾을 수 없을때에도 0을 return 해주는데, 이때 GetLastError()로 error값을 살펴보아도 error값은 변경되어 있지 않다는 것을 알수 있습니다.

따라서 "file not found"와 그 밖의 에러들(out of memory, invalid parameter들과 같은..)을 리턴값으로 구분하는 것은 쉽지 않습니다.

따라서 프로그래머가 SearchPath()를 호출하기 전에 SetLastError()를 NO_ERROR로 셋팅해 주어서 나중에 값을 비교해 보아야 합니다.

SearchPath() 함수의 결과값을 분석해 보면 다음과 같습니다.

   return value >  buffer length    buffer too small 

   return value =  0                file not found or another error 

   return value <= buffer length    file found 

다음 예제는 이 함수가 0을 리턴했을때 어떻게 값을 분석하는지를 보여주고 있습니다.


3.예제

   TCHAR  szFilename[] = "MyFile.Txt"; 

   TCHAR  szPathname[MAX_PATH]; 

   LPTSTR lpszFilename; 



   SetLastError( NO_ERROR ); 

   if( !SearchPath( NULL, szFilename, NULL, MAX_PATH, szPathname, 

                    &lpszFilename ) ) 

   { 

      if( GetLastError() == NO_ERROR ) 

         Display( "File not found." ); 

      else 

         Display( "SearchPath failed!" ); 

   } 


4.참고

MSDN - Knowledge base - Win32 Development


- 2001.08.13 Smile Seo -

"Win32 API" 카테고리의 다른 글
  • Break Pointer 는 INT 3 으로 통한다!! (0)2007/02/22
  • 화면 캡쳐 소스 (0)2007/02/22
  • SearchPath()의 리턴값 알아보기 (0)2007/02/22
  • 파일의 특정 부분의 warning level을 지정하기 (0)2007/02/21
  • 어셈블된 코드 보기 (0)2007/02/21
2007/02/22 09:05 2007/02/22 09:05
Posted by webdizen
Tags SearchPath
No Trackback No Comment

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

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

  • TCHAR
  • 까무스 XO
  • 윈도우 스타일
  • IDS
  • RPM
  • Programming Optimization
  • SQL Server 2000
  • 공부
  • 웹 로그
  • SAX Filters
  • 데이터베이스
  • List
  • Huffman
  • 헤네지 XO
  • 프로세스 복사본
  • Watch
  • hacking
  • 프로세서 종류
  • Calendar
  • 절전 모드

Recent Articles

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

Recent Comments

  • ■ 온라인카지노 ▶ http://L....
    asdf 11/21
  • 그리고 혹시 해외여행자보험....
    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.