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


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


LIST ALL
Posted by 박종훈2010-07-22 21:08:34, Hit : 4158
구조체 등에서 문자형을 요구할 때
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
292
   창조에서 영어로 뜨는 오류 메시지 안 뜨게 하기
지상현 2011/01/14  4448
291
   'ㅎ문자열' 사용하기 [1]
지상현 2011/01/14  4980
290
   [버그] 제거해() 인자는 '문자'가 아니라 'ㅎ객체' 입니다. [1]
지상현 2011/01/14  4396
289
   [버그] 파일속성바꿔()는 실수함수가 아니라 진리함수 [3]
지상현 2011/01/13  3911
288
   [버그] 파일날짜() 반환값은 실수? 문자?
지상현 2011/01/13  3757
287
   [버그] 인자수() = 어째선지 문자함수
지상현 2011/01/13  3819
286
   [버그] SystemParametersInfo() 없습니다.
지상현 2011/01/13  3806
285
   [버그] 대화창보여() 'ㄷㅇ무효' + 여러 버튼 = 동작 안 함
지상현 2011/01/12  4652
284
   창을 화면 중간에 띄우기 [4]
김대명 2011/01/06  3645
283
   [버그] ㅎ파일탐색이 두개면 하나가 먹통이 됩니다.
박종훈 2010/12/11  4155
282
   Windows XP의 Explorer.exe 명령줄 옵션 [2]
박종훈 2010/07/22  4855

   구조체 등에서 문자형을 요구할 때
박종훈 2010/07/22  4158
280
   창조 코드에디터의 오타수정 기능! [2]
박종훈 2010/07/21  4137
279
   [api] 응답없음 판단하기 [1]
박종훈 2010/07/21  4479
278
   파일의 인코딩 방식 알기 [1]
박종훈 2010/07/20  4655
277
   문법검사기가 "(" 를 파싱해 오류를 냅니다. [1]
박종훈 2010/07/18  5820
276
   '찌끼' 속성의 분석
박종훈 2010/07/02  4714
275
   창조 전용 DLL 만들기 "함수명 한글로 만들기"
지상현 2010/06/29  4966
274
   창조 전용 DLL 만들기 "창조의 자료형"
지상현 2010/06/29  4122
273
   [0.9b] 체크박스/라디오버튼 꾸미기 가이드
지상현 2010/06/25  5572
272
     윈도7 체크박스/라디오버튼
지상현 2010/06/25  4105
271
   XP에서 ㅎ그림판에서 그림 읽어올때 오류
지상현 2010/06/05  5475
270
   배열 버그 해결법
성인e 2009/11/07  4781
269
   메모 객체 글꼴 크기 조절 [2]
성인e 2009/09/30  5670
268
   정식판,데모버전 구현하기.. 노가다~~~ [1]
권선중 2009/05/18  5226
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이희철
로그인