Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
델파이에서 vxd를 호출할수 없나요?
안녕하세요.
vxd를 아시는 분이 계실꺼라 생각듭니다.
다름이 아니라 vxd를 델파이에서 사용할수 있는지 알고 싶어서
이렇게 질문을 올립니다.
좋은 답변기다리겠습니다.
1
COMMENTS
이승원
•
2000.11.22 19:45
안녕하세요.
저 역시 vxd를 몇일째 자료를 찾고 있는데 별루 신통치 않습니다.
제가 아는데 까지 답해 드릴께요.
델파이에서도 물론 vxd가 동적로드가 가능합니다.
동적으로 로드하려면 win32api인 CreateFile 을 씁니다.
그리고 CreateFile로 얻은 핸들값을 DeviceIoControl이란 API를 사용해서
vxd와 통신하게 초기화합니다.
CreateFile은 많이 써 보셨겠죠.
CreateFile로 Vxd의 핸들을 얻으려면 다음과같이 씁니다.
hDevice = CreateFile('\.Vxdname.VXD', 0, 0, nil, 0, FILE_FLAG_DELETE_ON_CLOSE, nil);
위의 함수를 보면 아무의미가 없는 대부분의 파라미터는 0로 되어있고
FILE_FLAG_DELETE_ON_CLOSE는 CloseHandle을 호출할때 VMM이 자동으로
Vxd를 언로드한다는것을 의미합니다.
핸들값을 얻었으면 DeviceIoControl인터페이스를 구현해야 합니다.
DeviceIoControl 의 원형은 다음과 같습니다.
BOOL DeviceIoControl(Handle hDevice, DWORD code,
LPVOID inbuf, DWORD cbinbuf,
LPVOID outbuf, DWORD cboutbuf,
LPDWORD pnout,
LPOVERLAPPED lpovlap);
이 호출에서 hDevice에 CreateFile로 얻은 핸들을 넘겨주고
inbuf는 입력데이터를 포함하는 버퍼의 이드레스이고,
outbuf는 드라이버에 의해 리턴되는 데이터의 바이트수를 의미하는 DWORD의 어드레스입니다. LPOVLAP파라미터는 윈 nt에서는 오버랩된 IO와 관계가 있으며 윈도95,98에서는 nil일수 있습니다.
DeviceIoControl은 다음과 같이 씁니다.
DeviceIoControl(hDevice, 2, &pBuf, sizeof(pBuf), nil, 0, nil, nil)
이게 제가 vxd아는 전부입니다.
많은 도움이 되지못해 죄송합니다. 나중에 더 알게 되면 그때 가르쳐 드릴께요.
그럼 열심히 프로그래밍하시기 바랍니다.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
민보희
2000.01.27 07:42
0
COMMENTS
/
0
LIKES
Excel 파일을 폼에서 보여주기
성관
•
2000.01.27 06:51
1
COMMENTS
/
0
LIKES
다른 폼 제어
구창민
•
2000.01.27 07:05
성관 wrote: > 날씨가 쌀쌀한데 수고들 많으십니다. > 질문내용이 있어 이렇게 글을 올리게 되었습니다. ...
유승진
•
2000.01.27 06:15
1
COMMENTS
/
0
LIKES
죄송..아래글 제목을 안넣어서 -델파이 네트웍 프로그래밍 관련 책 구함...
구창민
•
2000.01.27 07:03
유승진 wrote: > 델파이 네트웍 프로그래밍에 관련된 서적이나 강좌 있으면 좀 가르쳐 주세요.. > 감사합...
대구에서
•
2000.01.27 05:02
2
COMMENTS
/
0
LIKES
델파이에서 아래아한글문서(*.hwp)를 텍스트화일로변환
구창민
•
2000.01.27 06:55
대구에서 wrote: > 델파이에서 아래하한글로 작성된 화일로 불러와서 > 텍스트화일로 변화하는 방법은 없...
갱수
•
2000.01.27 06:00
대구에서 wrote: > 델파이에서 아래하한글로 작성된 화일로 불러와서 > 텍스트화일로 변화하는 방법은 없...
안명호
•
2000.01.27 04:57
2
COMMENTS
/
0
LIKES
Access violation at... 의 정체를....
이주흥
•
2000.01.27 05:51
지가 멀 알겠습니까만은.. 제 경험으로는 access violation에러는 대충 메세지를 보면 알수 있듯이 없는...
하얀까마귀
•
2000.01.27 07:33
> > 프로그램을 실행하면 다음과 같은 에러가 발생하더군요... > > > > Access violation at address 00...
thenolja
2000.01.27 04:52
0
COMMENTS
/
0
LIKES
Re: date형이 아닌 string형으로된 날짜의 구간별 검색을 하고 싶은데요??
강경중
2000.01.27 04:00
0
COMMENTS
/
0
LIKES
[부탁]도서 추천 좀 해주세요.....
델왕초보
•
2000.01.27 03:39
1
COMMENTS
/
0
LIKES
디비그리드에서...
하얀까마귀
•
2000.01.27 08:30
죄송 질문을 잘 모르겠습니다. 컬럼의 picklist에 값을 넣겠다는 말씀이신지.. 아니면 pickList의 값을 ...
Fepest
•
2000.01.27 03:28
1
COMMENTS
/
0
LIKES
NT에서는 어떻게 Resource를 체크하나요.
김영대
•
2000.01.27 19:33
Fepest wrote: > 저번 답변에 감사드리고( 덕분에 잘사용하고있읍니다.) > > 그런데 NT에서 실행을...
조병민
2000.01.27 03:19
0
COMMENTS
/
0
LIKES
qrimage로 jpg인쇄시 ...
허영식
•
2000.01.27 03:17
1
COMMENTS
/
0
LIKES
델파이에서 vxd를 호출할수 없나요?
안녕하세요. vxd를 아시는 분이 계실꺼라 생각듭니다. 다름이 아니라 vxd를 델파이에서 사용할수 있는지 알고 싶어서 이렇게 질문을 올립니다. 좋은 답변기다리겠습니다.
이승원
•
2000.11.22 19:45
안녕하세요. 저 역시 vxd를 몇일째 자료를 찾고 있는데 별루 신통치 않습니다. 제가 아는데 까지 답해 드...
초보자
•
2000.01.27 03:15
3
COMMENTS
/
0
LIKES
동적생성한 콘트롤에서 이벤트를 받고 싶습니다.
강인규
•
2000.01.27 19:50
폼에는 findecomponent라는 함수가 있습니다 아래의 예제를 참고하세요. 이건 동적으로 생성시킨 에디트를...
송종영
•
2000.06.30 10:54
Focus를 받을 수 있는 콘트롤을 생성하고(Speedbutton은 안됨) 이벤트를 받으려면 이렇게 하면 됩니다. ...
송종영
•
2000.06.30 10:53
Focus를 받을 수 있는 콘트롤을 생성하고(Speedbutton은 안됨) 이벤트를 받으려면 이렇게 하면 됩니다. ...
모인환
•
2000.01.27 02:52
3
COMMENTS
/
0
LIKES
Pdoxuser.lck 이것땜시 집에 못가고 있어요!!!
모인환
•
2000.01.27 19:11
에구...해결했습니다... 답변 주신 하얀까마귀님, 유도삼님께 감사드립니다. 문제가 된던 쿼리의 프라...
하얀까마귀
•
2000.01.27 08:06
제가 도움이 될지 모르겠네요.. 단지 조금 말씀을 드리자면... 파라독스는 레코드단위의 락을 지원합니다...
유도삼
•
2000.01.27 05:03
저의 경우를 말씀드리죠. 저도 아래와 같은 에러를 만나 거의 미칠뻔 한적이 있습니다. 해결책이 있냐구...
이숙경
•
2000.01.27 02:46
2
COMMENTS
/
0
LIKES
델파이 2 Tier 와 3 Tier
유효종
•
2000.01.27 03:26
이숙경 wrote: > 델파이에서 2 Tier 와 3 Tier이 현업에서 어떻게 사용되는지 자세히 알고 싶거든요.... ...
갱수
•
2000.01.27 05:58
유효종 wrote: > 이숙경 wrote: > > 델파이에서 2 Tier 와 3 Tier이 현업에서 어떻게 사용되는지 자세히 ...
안소영
2000.01.27 02:29
0
COMMENTS
/
0
LIKES
ActiveX의 VtChart사용법 가르쳐주세요... 급해요...빨리요...
양윤호
2000.01.27 02:13
0
COMMENTS
/
0
LIKES
레지스트리 화일 등록시에 Win98에서 폼을 안보이게 하는법 좀 가르쳐 주세요.
김순호
2000.01.27 01:22
0
COMMENTS
/
0
LIKES
메모리 테이블 에 관한 질문
초보왕
•
2000.01.27 00:54
2
COMMENTS
/
0
LIKES
고수님들의 조언부탁합니다.
강인규
•
2000.01.27 02:12
form key down 이벤트에 아래와 같이 코딩합니다. 꽁수만 갈켜드리는것 같군요. procedure TForm1.Form...
술친구
•
2000.01.27 02:00
초보왕 wrote: > 키이동에 관한건데요 > 아래 소스를 보고 해결책 좀 조언해주십시오 > edit1keyup > b...
neocity
2000.01.26 23:59
0
COMMENTS
/
0
LIKES
앞의 내용이 수정이 안되서 다시 씁니다.
정연
2000.01.26 23:45
0
COMMENTS
/
0
LIKES
갱수님
허영식
2000/01/27 03:17
Views
397
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
저 역시 vxd를 몇일째 자료를 찾고 있는데 별루 신통치 않습니다.
제가 아는데 까지 답해 드릴께요.
델파이에서도 물론 vxd가 동적로드가 가능합니다.
동적으로 로드하려면 win32api인 CreateFile 을 씁니다.
그리고 CreateFile로 얻은 핸들값을 DeviceIoControl이란 API를 사용해서
vxd와 통신하게 초기화합니다.
CreateFile은 많이 써 보셨겠죠.
CreateFile로 Vxd의 핸들을 얻으려면 다음과같이 씁니다.
hDevice = CreateFile('\.Vxdname.VXD', 0, 0, nil, 0, FILE_FLAG_DELETE_ON_CLOSE, nil);
위의 함수를 보면 아무의미가 없는 대부분의 파라미터는 0로 되어있고
FILE_FLAG_DELETE_ON_CLOSE는 CloseHandle을 호출할때 VMM이 자동으로
Vxd를 언로드한다는것을 의미합니다.
핸들값을 얻었으면 DeviceIoControl인터페이스를 구현해야 합니다.
DeviceIoControl 의 원형은 다음과 같습니다.
BOOL DeviceIoControl(Handle hDevice, DWORD code,
LPVOID inbuf, DWORD cbinbuf,
LPVOID outbuf, DWORD cboutbuf,
LPDWORD pnout,
LPOVERLAPPED lpovlap);
이 호출에서 hDevice에 CreateFile로 얻은 핸들을 넘겨주고
inbuf는 입력데이터를 포함하는 버퍼의 이드레스이고,
outbuf는 드라이버에 의해 리턴되는 데이터의 바이트수를 의미하는 DWORD의 어드레스입니다. LPOVLAP파라미터는 윈 nt에서는 오버랩된 IO와 관계가 있으며 윈도95,98에서는 nil일수 있습니다.
DeviceIoControl은 다음과 같이 씁니다.
DeviceIoControl(hDevice, 2, &pBuf, sizeof(pBuf), nil, 0, nil, nil)
이게 제가 vxd아는 전부입니다.
많은 도움이 되지못해 죄송합니다. 나중에 더 알게 되면 그때 가르쳐 드릴께요.
그럼 열심히 프로그래밍하시기 바랍니다.