Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
SendMessage Data 읽기.
VC++의 DLL에서
SendMessage(HANDLE hWindow, UNIT msg, char *data, long len);
로 메세지를 받고, 여기에서
3번째 파라메타는 읽고자하는 버퍼이고,
4번째 파라메타는 버퍼의 길이 입니다.
여기서 받은 메세지를 이용해서 버퍼자료를 읽어야 하는데
어떻게 해야할지........
많은 조언을 부탁드립니다.
3
COMMENTS
최용일
•
2000.07.25 00:37
안녕하세요. 최용일입니다.
메세지에 반응하는 이벤트를 만드세요.
TForm1 = class(TForm)
...
procedure 함수이름(메세지구조체 var파라매터); message 메세지이름(msg)
...
end;
procedure TForm1.함수이름(메세지구조체 var파라매터);
// 메세지구조체는 TMessage를 사용해도 되고 이것과 크기가 같은 다른 구조체 레코드를
// 정의해서 사용해도 됩니다.
begin
// TMessage구조체를 사용할 경우 WParam필드에 버퍼(char *data)가 들어가고 LParam에
// 버퍼의 길이(long len)가 들어갑니다.
// 버퍼는 적당히 형변환해서 사용하시며 되구요...
end;
^^ 항상 즐코하세요.
박성일 wrote:
> VC++의 DLL에서
> SendMessage(HANDLE hWindow, UNIT msg, char *data, long len);
> 로 메세지를 받고, 여기에서
> 3번째 파라메타는 읽고자하는 버퍼이고,
> 4번째 파라메타는 버퍼의 길이 입니다.
>
> 여기서 받은 메세지를 이용해서 버퍼자료를 읽어야 하는데
> 어떻게 해야할지........
>
> 많은 조언을 부탁드립니다.
>
0
0
삭제
수정
댓글
박성일
•
2000.07.25 00:38
감사합니다.
그런데....
WParam필드에 들어있는 char *data를 사용하기 위해서 어떻게 형변환을 해야 하는지??
부탁드립니다.
최용일 wrote:
> 안녕하세요. 최용일입니다.
>
> 메세지에 반응하는 이벤트를 만드세요.
>
> TForm1 = class(TForm)
> ...
> procedure 함수이름(메세지 구조체파라매터); message 메세지이름(msg)
> ...
> end;
>
> procedure TForm1.함수이름(메세지구조체);
> // 메세지구조체는 TMessage를 사용해도 되고 이것과 크기가 같은 다른 구조체 레코드를
> // 정의해서 사용해도 됩니다.
> begin
> // TMessage구조체를 사용할 경우 WParam필드에 버퍼(char *data)가 들어가고 LParam에
> // 버퍼의 길이(long len)가 들어갑니다.
> // 버퍼는 적당히 형변환해서 사용하시며 되구요...
> end;
>
> ^^ 항상 즐코하세요.
>
> 박성일 wrote:
> > VC++의 DLL에서
> > SendMessage(HANDLE hWindow, UNIT msg, char *data, long len);
> > 로 메세지를 받고, 여기에서
> > 3번째 파라메타는 읽고자하는 버퍼이고,
> > 4번째 파라메타는 버퍼의 길이 입니다.
> >
> > 여기서 받은 메세지를 이용해서 버퍼자료를 읽어야 하는데
> > 어떻게 해야할지........
> >
> > 많은 조언을 부탁드립니다.
> >
0
0
삭제
수정
댓글
최용일
•
2000.07.25 00:54
안녕하세요. 최용일입니다.
그건 사용하고자 하는 버퍼형에 따라서 달라지는데요....
버퍼를 포인터로 정의하면
var
Buffer: Pointer;
begin
Buffer := Pointer(메세지파라매터.WParam);
end;
버퍼를 배열로 정의하면
type
TBuffer = array[0..버퍼크기] of Byte;
var
Buffer: TBuffer;
begin
Buffer := TBuffer(Pointer(메세지파라매터.WParam)^);
end;
버퍼를 배열의 포인터로 정의하면
type
PBuffer = ^TBuffer;
TBuffer = array[0..버퍼크기] of Byte;
var
Buffer: PBuffer;
begin
Buffer := PBuffer(메세지파라매터.WParam);
end;
버퍼를 PChar(널종료문자열)로 정의하면
var
Buffer: PChar;
begin
Buffer := PChar(메세지파라매터.WParam);
end;
이런식이 되겠죠...
^^ 항상 즐코하세요.
박성일 wrote:
> 감사합니다.
>
> 그런데....
>
> WParam필드에 들어있는 char *data를 사용하기 위해서 어떻게 형변환을 해야 하는지??
>
> 부탁드립니다.
>
>
>
> 최용일 wrote:
> > 안녕하세요. 최용일입니다.
> >
> > 메세지에 반응하는 이벤트를 만드세요.
> >
> > TForm1 = class(TForm)
> > ...
> > procedure 함수이름(메세지 구조체파라매터); message 메세지이름(msg)
> > ...
> > end;
> >
> > procedure TForm1.함수이름(메세지구조체);
> > // 메세지구조체는 TMessage를 사용해도 되고 이것과 크기가 같은 다른 구조체 레코드를
> > // 정의해서 사용해도 됩니다.
> > begin
> > // TMessage구조체를 사용할 경우 WParam필드에 버퍼(char *data)가 들어가고 LParam에
> > // 버퍼의 길이(long len)가 들어갑니다.
> > // 버퍼는 적당히 형변환해서 사용하시며 되구요...
> > end;
> >
> > ^^ 항상 즐코하세요.
> >
> > 박성일 wrote:
> > > VC++의 DLL에서
> > > SendMessage(HANDLE hWindow, UNIT msg, char *data, long len);
> > > 로 메세지를 받고, 여기에서
> > > 3번째 파라메타는 읽고자하는 버퍼이고,
> > > 4번째 파라메타는 버퍼의 길이 입니다.
> > >
> > > 여기서 받은 메세지를 이용해서 버퍼자료를 읽어야 하는데
> > > 어떻게 해야할지........
> > >
> > > 많은 조언을 부탁드립니다.
> > >
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
coolling
•
2000.07.25 01:41
3
COMMENTS
/
0
LIKES
onkeypress와 onkeydown 의 차이점이 아주 궁금하네요....
나그네
•
2000.07.25 02:17
coolling wrote: > 이번트중에서 onkeypress와 onkeydown의 차이점이 궁금합니다.. > 많은 설명을 보았...
coolling
•
2000.07.25 03:13
나그네 wrote: > coolling wrote: > > 이번트중에서 onkeypress와 onkeydown의 차이점이 궁금합니다.. ...
성호종
•
2000.07.25 06:54
coolling wrote: keydown, keyup, keypress 분명 나누어 놓은 이유가 있습니다. 그 이유는 windows가 각...
이영근
2000.07.25 01:35
0
COMMENTS
/
0
LIKES
답변 고맙습니다. 그런데 또 error가나요
chobo
•
2000.07.25 01:13
2
COMMENTS
/
0
LIKES
... 스페이스를 넣는 방법에 대하여....
최용일
•
2000.07.25 01:35
안녕하세요. 사발님. 최용일입니다. 이렇게 해보심 안될까요... function SpaceStr(Count: Integer)...
chobo
•
2000.07.25 03:16
최용일 wrote: > 안녕하세요. 사발님. 최용일입니다. > > 이렇게 해보심 안될까요... > > function...
이용진
2000.07.25 01:13
0
COMMENTS
/
0
LIKES
InstallShield를 이용하여 프로그램 배포시 에러발생
김정규
2000.07.25 00:51
0
COMMENTS
/
0
LIKES
델에서 Ms-sql 테이블 생성....
이영근
•
2000.07.25 00:04
1
COMMENTS
/
0
LIKES
날자 연산을 조건문에 줬는데 error가..(급급급)
나그네
•
2000.07.25 00:25
이영근 wrote: > 왜 error가 나죠? > priceQuery.Sql.Add('Where ( (strtodate(date1) - :sdate) < -60 ...
heimdal
•
2000.07.24 23:42
3
COMMENTS
/
0
LIKES
PC to PC 시리얼통신하는방법
cell
•
2000.07.25 00:57
PC vs PC통신은 일반 시리얼 통신과 똑같습니다. 다만 케이블에서 문제가 있습니다. 보통 cross, direct...
이대선
•
2000.07.25 00:55
heimdal wrote: > PC에서 PC루 시리얼통신하는방법좀 알려주세여.. > > 케이블은 어떤게필요하고 어느...
heimdal
•
2000.07.25 01:27
.
호야
2000.07.24 23:33
0
COMMENTS
/
0
LIKES
RichEdit에있는 내용을 파일에 저장하기
김인
2000.07.24 23:32
0
COMMENTS
/
0
LIKES
동적DLL로 Child Form 호출시 에러가 나는데........
양익호
2000.07.24 23:18
0
COMMENTS
/
0
LIKES
네트웍/통신
김동천
•
2000.07.24 23:08
2
COMMENTS
/
0
LIKES
Windows NT/2000 에서 IO Port 제어 방법.
조준회
•
2000.07.25 19:52
음.. 저도 고민했던 내용인데.. 방법은 물론 있습니다. 디바이스 드라이버를 이용하는 방법도 있고.. ...
최용일
•
2000.07.25 00:06
안녕하세요. 최용일입니다. Windows 95/98과는 달리 Windows NT(2k도 비슷할겁니다.)에서는 모든 하드웨...
양동욱
•
2000.07.24 22:20
4
COMMENTS
/
0
LIKES
KeyPress의 #0 의 Key값과 같은 기능을하는 KeyDown에서 사용할수있는
최석기
•
2000.07.24 22:35
양동욱 wrote: > 델파이 초보입니다. > KeyPress의 #0 의 Key값과 같은 기능을하는, KeyDown에서 사용할...
양동욱
•
2000.07.24 23:11
최석기 wrote: > 양동욱 wrote: 답변 감사합니다. 제가 지금 할려고 하는것은 리치에디터에서 다섯번째 ...
최석기
•
2000.07.24 23:28
양동욱 wrote: > 최석기 wrote: > > 양동욱 wrote: > 답변 감사합니다. > 제가 지금 할려고 하는것은 ...
양동욱
•
2000.07.25 00:10
> 그런거라면 그냥 MaxLength로 잡으면 않되나요?? MaxLength로 잡으면 한글,숫자,영문등을 조합해서 사...
정종구
•
2000.07.24 21:59
1
COMMENTS
/
0
LIKES
[컴포넌트에러] Range Check에러가나는데?
이홍석
•
2005.08.14 08:24
저도 이런현상이 나타납니다.. 오늘 갑자기 그러군요 아마 버그인것 같읍니다. 저도 아직 해결하지 못하...
박성일
•
2000.07.24 22:52
3
COMMENTS
/
0
LIKES
SendMessage Data 읽기.
VC++의 DLL에서 SendMessage(HANDLE hWindow, UNIT msg, char *data, long len); 로 메세지를 받고, 여기에서 3번째 파라메타는 읽고자하는 버퍼이고, 4번째 파라메타는 버퍼의 길이 입니다. 여기서 받은 메세지를 이용해서 버퍼자료를 읽...
최용일
•
2000.07.25 00:37
안녕하세요. 최용일입니다. 메세지에 반응하는 이벤트를 만드세요. TForm1 = class(TForm) ... ...
박성일
•
2000.07.25 00:38
감사합니다. 그런데.... WParam필드에 들어있는 char *data를 사용하기 위해서 어떻게 형변환을 해야...
최용일
•
2000.07.25 00:54
안녕하세요. 최용일입니다. 그건 사용하고자 하는 버퍼형에 따라서 달라지는데요.... 버퍼를 포인터...
정아
2000.07.24 20:06
0
COMMENTS
/
0
LIKES
bitmap<->String코드 & UDP전송코드 잘 안되네요.. 도와주세요~~!!!
아리엘
•
2000.07.24 19:46
1
COMMENTS
/
0
LIKES
리치 에디트 또는 다른 에디트에서 커셔 위치 조정하는법..
Mr.Q
•
2000.07.24 21:40
아리엘 wrote: > 엔터키를 누르면 다음 줄로 내려 가잖아요.. > > 근데 엔터키 눌르면 젤 위로 올라가...
김지훈
2000.07.24 19:27
0
COMMENTS
/
0
LIKES
beginDrag 후에 더블클릭시 문제발생
양정승
2000.07.24 19:05
0
COMMENTS
/
0
LIKES
docking한 Panel의 Close를 막는 방법 좀 알려 주세요.
이광민
•
2000.07.24 18:45
1
COMMENTS
/
0
LIKES
데이터베이스데스크탑에서 db에다가 직접 입력하는데 키바이얼레이션이..
redmoon
•
2000.07.25 00:23
마찬가지루 초소 박세연임다. 키를 잡아주셨느지.. 키를 잡아주지 않으면 에러가... 아님 키로 잡아...
호야
•
2000.07.24 18:25
1
COMMENTS
/
0
LIKES
메인폼에서 서브폼의 SaveDialog시행시키기
정지호
•
2000.07.24 18:59
호야 wrote: > 메인폼에 있는 메인메뉴를 누르면 서브에 있는 함수를 실행시킵니다. > 그런데 AccessViol...
박성일
2000/07/24 22:52
Views
722
Likes
0
Comments
3
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
메세지에 반응하는 이벤트를 만드세요.
TForm1 = class(TForm)
...
procedure 함수이름(메세지구조체 var파라매터); message 메세지이름(msg)
...
end;
procedure TForm1.함수이름(메세지구조체 var파라매터);
// 메세지구조체는 TMessage를 사용해도 되고 이것과 크기가 같은 다른 구조체 레코드를
// 정의해서 사용해도 됩니다.
begin
// TMessage구조체를 사용할 경우 WParam필드에 버퍼(char *data)가 들어가고 LParam에
// 버퍼의 길이(long len)가 들어갑니다.
// 버퍼는 적당히 형변환해서 사용하시며 되구요...
end;
^^ 항상 즐코하세요.
박성일 wrote:
> VC++의 DLL에서
> SendMessage(HANDLE hWindow, UNIT msg, char *data, long len);
> 로 메세지를 받고, 여기에서
> 3번째 파라메타는 읽고자하는 버퍼이고,
> 4번째 파라메타는 버퍼의 길이 입니다.
>
> 여기서 받은 메세지를 이용해서 버퍼자료를 읽어야 하는데
> 어떻게 해야할지........
>
> 많은 조언을 부탁드립니다.
>