창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


창조 팁
- '창조' 에 관한 팁을 올리는 곳입니다. 다수의 이미지가 필요하시면 아래 '이미지 자료실' 에 업로드 후 불러와 주세요..


LIST ALL
Posted by 박종훈2010-07-22 21:08:34, Hit : 4172
구조체 등에서 문자형을 요구할 때
Homepage : http://qnrdlqkrwhdgns.canxan.com/
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=tip&no=420
API등을 사용하다보면 구조체가 필요할 때가 있습니다.
구조체는 상현님께서 만드신 구조체함수를 사용하면 문제될 것이 없습니다.

구조체 다루는 함수 (v3)
(http://cugz.sjworks.net/bbs/zboard.php?id=pds_sc&no=776 )

그런데 다음과 같은 녀석은 구조체에 문자형을 집어넣어야 하는 경우가 있습니다.

OPENFILENAME Structure
typedef struct tagOFN {
  DWORD         lStructSize;
  HWND          hwndOwner;
  HINSTANCE     hInstance;
  LPCTSTR       lpstrFilter;
  LPTSTR        lpstrCustomFilter;
  DWORD         nMaxCustFilter;
  DWORD         nFilterIndex;
  LPTSTR        lpstrFile;
  DWORD         nMaxFile;
  LPTSTR        lpstrFileTitle;
  DWORD         nMaxFileTitle;
  LPCTSTR       lpstrInitialDir;
  LPCTSTR       lpstrTitle;
  DWORD         Flags;
  WORD          nFileOffset;
  WORD          nFileExtension;
  LPCTSTR       lpstrDefExt;
  LPARAM        lCustData;
  LPOFNHOOKPROC lpfnHook;
  LPCTSTR       lpTemplateName;
#if (_WIN32_WINNT >= 0x0500)
  void          *pvReserved;
  DWORD         dwReserved;
  DWORD         FlagsEx;
#endif
} OPENFILENAME, *LPOPENFILENAME;

위에 노란색으로 된 녀석들이 문자형을 요구하는 것들입니다.
그렇다고 창조에서 문자형을 요구하는 녀석에 진짜 문자 데이터를 넣을 수는 없습니다. 문자 데이터의 주소를 넣어야 합니다.

창조만으로 변수의 주소는 알아낼 수가 없습니다.
다소 꼼수라고는 생각하지만, 지금으로써는 이 방법밖에 없는것 같습니다.

API를 사용해서 문자의 주소를 얻어 사용하는 방법입니다.

ㅎ사용자함수

연결파일: Kernel32
실수함수: lstrcat(문자: lpString1, lpString2);


사실, lstrcat 함수는 두 문자를 합쳐주는 역할을 합니다. 창조의 '문자붙여' 함수와 동일한 기능을 합니다.
(http://msdn.microsoft.com/en-us/library/ms647487(VS.85).aspx )

그런데 이 함수의 반환값은 합쳐진 문자의 "주소" 를 반환합니다.
따라서 창조에서 어떤 문자열의 주소를 얻고자 한다면 다음과 같이 하시면 됩니다.

문자: 문1;
실수: 문1주소;

문1 := "나는 문자에요. 제 주소를 얻어주세요.";
문1주소 := 사용자함수0.lstrcat(문1, 수문(0));

문1과 수문(0)을 합쳐서 주소를 반환합니다.
수문(0)은 Null 문자입니다.(따라서 문자를 합치는 기능은 무의미하고 주소만 얻어내려는 용도입니다.)


이 방법은 아래의 자료들에 사용되었습니다.

API로 파일관리창 띄우기
http://cugz.sjworks.net/bbs/zboard.php?id=pds_sc&no=778

LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
167
   문법검사기가 "(" 를 파싱해 오류를 냅니다. [1]
박종훈 2010/07/18  5848
166
   파일의 인코딩 방식 알기 [1]
박종훈 2010/07/20  4673
165
   [api] 응답없음 판단하기 [1]
박종훈 2010/07/21  4502
164
   창조 코드에디터의 오타수정 기능! [2]
박종훈 2010/07/21  4157

   구조체 등에서 문자형을 요구할 때
박종훈 2010/07/22  4172
162
   Windows XP의 Explorer.exe 명령줄 옵션 [2]
박종훈 2010/07/22  4871
161
   [버그] ㅎ파일탐색이 두개면 하나가 먹통이 됩니다.
박종훈 2010/12/11  4171
160
   api 사용 파일다운로드시.. [2]
박재성[날개달기] 2005/03/22  5220
159
   [팁] ^ㅁ^ [4]
박재성[날개달기] 2005/04/14  5280
158
   WinAPI 레퍼런스 창조로 쓸수있는것들? [4]
박재성[날개달기] 2006/02/11  5167
157
   프로세스 아이디 구하기 [4]
박재성[날개달기] 2006/03/22  5545
156
   [api] 작업관리자에서 프로그램 숨기기 [4]
박재성[날개달기] 2006/03/22  5854
155
   [등록완료] 창조만을 이용하여 파일합치고 풀기 [2]
박재성 2007/02/08  6194
154
   CreateallCOM 에서 ActiveX 사용이 가능해질경우 가능한일 한... [5]
박재성 2007/08/11  4760
153
   워드2007의 진실.. [3]
박재성 2008/05/13  4867
152
   창조로 컴퓨터 제어? [2]
박재성 2008/05/25  4757
151
   컨트롤 아이디 얻어올때..
박재성 2009/01/27  4639
150
   아무리 발악을 하여도 2진써를..
박재성 2009/05/13  4473
149
   Q/A에 올렷던 '사용자함수(dll) 중복 감시기' 손봐서 이곳에 ...
바람 2007/06/23  4824
148
   '문자찾아'의 속도비교 [4]
바람 2009/02/22  6167
147
   cmd.exe 이용하기 [2]
바람 2009/02/25  5383
146
   ㅎ메모의 64k 제한..
바람 2011/11/19  5509
145
   'ㅎ메모'의 문자찾아 속도 비교 2탄.[2011.12.20 12:45 내용... [1]
바람 2011/12/20  4627
144
   사용자함수 버그 관련 나름 사용중인 해법.
바람 2012/01/10  4710
143
   배경을 다룰 때 유의할 점.
바람 2012/01/10  5508
LIST ALL   Prev [1][2][3][4][5][6][7] 8 [9][10]..[14] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인