|
| Posted by 지상현 | 2004-11-23 21:24:22, Hit : 6939 | |
|
|
|
여러분을 노가다의 길로 이끌어줄 제가-_- 왔습니다.
예전에 제가, 창조로 파일 내려받는 예제 만들 적에-_- 가능성을 확인하곤 귀찮아서 끝내는 완성하지 못한 어떤 기술(?)에 대해 힌트 정도 드리려고 합니다. -_-
결론부터 말하면, 창조에서도 포인터를 써먹을 수 있다는 겁니다.
: "그래서 어쩌라고? -_-"
...이렇게 말씀하시는 분이 계실지도 모르겠습니다. 하지만 포인터를 사용할 수 있게 됨으로서 창조에서 할 수 있는 일(?)이 비약적으로 증가합니다. 물론 그에 따른 노가다도 상당량 증가하겠지만 -_-;
1. 기존에 포인터를 요구했던 API를 사용할 수 있습니다. + 노가다 2. DLL을 만들어 쓸 때, 데이터 전달을 좀 더 원활하게 할 수 있습니다. + 노가다 3. API나 DLL을 사용할 때, 구조체를 전달할 수 있습니다(!) + 노가다 + 생노가다 + 중노동 4. 그 밖에 여러가지...
별로 흥미 없는 일일지도 모르지만, 겨우 어떤 API를 쓰기 위해 같잖은 DLL을 만들어 창조의 자존심을 팍팍 밟히는 것을 회복해줄지도 모릅니다.-_- 다시 말해 "DLL을 노가다로 바꿀 수 있다"는 획기적인 교환 법칙이 성립..(퍽)
슬슬 본론을 말해볼까요. API를 쓰는 방법에는 2가지가 있습니다. 그리고 그에 따라 창조에서 사용할 수 있는 방법도 2가지로 나뉩니다.
1. 포인터로 데이터를 받아, 그 데이터가 필요한 경우! * 다른 창의 제목을 알고 싶어서, GetWindowText 를 쓰고 싶어요! * 그저 윈도우 폴더를 알고 싶은데, 썩을놈의 GetWindowsDirectory가 포인터를 요구해요! 해결책: 문자 형 변수를 이용하세요! 포인터, 그리고 문자열에 대해 확실히 개념이 잡히고 나서... 문자 형 변수도 역시 포인터라는 생각을 했습니다. 아니나다를까, 되더군요. 사용법만 요약하면
문자: 윈도폴더; 윈도폴더 := " "; // 띄어쓰기 30개입니다. API함수.GetWindowsDirectory(윈도폴더,30); // 이렇게 하면 윈도우 폴더를 30자 까지만 알아옵니다.
결론: 문자 형 변수는 그 자체로 포인터이다!
특수한 경우! 포인터로 문자열 외에 숫자값을 전달해야 하는 경우가 있습니다. 예를 들어 '3' 을 전달하려면
문자: 포인터; 포인터 := 수문(0) + 수문(0) + 수문(0) + 수문(3); // '포인터'의 값을 Hex로 표현하면 00 00 00 03 이 되겠죠. => 결국 숫자 3
그리고 저 포인터를 그대로 넘기시면 되는데, 이 때 API를 선언할 때 교묘하게 문자로 선언만 바꾸시면 된다는 겁니다. 하지만 이 방법은 아직 쓸 일도 별로 없고 또 엄청난 노가다를 요구하는데다가, 지면 부족으로-_- 자세히 설명하기 힘드므로 궁금하시면 나중에 자세히 설명하겠습니다.
자세한 설명은 다음회에서 -.-
2. 구조체를 전달 하거나/받거나, 그 데이터를 그대로 파일에 출력만 해도 되는 경우! 시간 관계상 다음회에 계속 -.- |
|
|
위자드 2004-11-23 PM 11:23:01 |
|
|
|
아직도 "포인터" 같은게 생소하네요 -.- |
|
|
지상현 2004-11-24 AM 1:37:07 |
|
|
|
예제를 적극 활용할 계획입니다; |
|
|
강현구 2004-11-24 PM 12:49:16 |
|
|
|
포인터는... 메모리에 있는 변수의 주소 아닌가요?
(저도 깡통;;;) |
|
|
지상현 2004-11-24 PM 6:45:27 |
|
|
|
대충 적기 시작했지만 이거 글이 너무 어수선하네요 -_-
제대로 다시 설명을;;; |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|