全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3099
推到 Plurk!
推到 Facebook!

DeviceIoControl( )需要include其他檔案或者調整哪裡嗎?

答題得分者是:dllee
Just4U
初階會員


發表:38
回覆:56
積分:28
註冊:2002-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-03 18:02:12 IP:211.74.xxx.xxx 未訂閱
HANDLE hDevice; BOOL r; DWORD junk; DISK_GEOMETRY pdg; r = DeviceIoControl( hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, pdg, sizeof(*pdg), &junk, (LPOVERLAPPED) NULL); 錯誤訊息顯示如下 2451 Undefined symbol 'DISK_GEOMETRY' 2451 Undefined symbol 'IOCTL_DISK_GET_DRIVE_GEOMETRY' 我的環境如下 Windows XP AMD 700MHz Borland C Builder 5 Professional 請問我需要include其他檔案或者調整哪裡嗎?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-03 23:45:53 IP:61.224.xxx.xxx 未訂閱
#include 
沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-04 00:01:26 IP:61.221.xxx.xxx 未訂閱
引言: HANDLE hDevice; BOOL r; DWORD junk; DISK_GEOMETRY pdg; r = DeviceIoControl( hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, pdg, sizeof(*pdg), &junk, (LPOVERLAPPED) NULL); 錯誤訊息顯示如下 2451 Undefined symbol 'DISK_GEOMETRY' 2451 Undefined symbol 'IOCTL_DISK_GET_DRIVE_GEOMETRY' 我的環境如下 Windows XP AMD 700MHz Borland C Builder 5 Professional 請問我需要include其他檔案或者調整哪裡嗎?
Just4U 你好: 試試看把你的程式碼改成以下這樣子 < class="code"> #include "Winioctl.h" HANDLE hDevice; BOOL r; DWORD junk; DISK_GEOMETRY pdg; r=DeviceIoControl(hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &pdg, sizeof(pdg), &junk, (LPOVERLAPPED) NULL); -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
Just4U
初階會員


發表:38
回覆:56
積分:28
註冊:2002-03-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-04 12:01:53 IP:211.74.xxx.xxx 未訂閱
引言:
#include 
沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
謝謝!!! 加入 #include "Winioctl.h" 就可以了 再請教一下, 現在換成 IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO HANDLE h BOOL r; r = DeviceIoControl(h, IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO, .....); 由MSDN得知IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO 需要include parallel.h ,所以我在project的include path加入 C:\WINDDK\2600\inc\wxp C:\WINDDK\2600\inc\ddk\wxp compile時, 在 parallel.h 中 typedef struct _PARPORT_REMOVAL_RELATIONS { PDEVICE_OBJECT DeviceObject; <--- E2303 Type name expected ULONG Flags; PUNICODE_STRING DeviceName; } PARPORT_REMOVAL_RELATIONS, *PPARPORT_REMOVAL_RELATIONS; 其中 PDEVICE_OBJECT DeviceObject; 這一行有錯誤訊息 E2303 Type name expected 是這種資料型態BCB5不能用嗎? 還是BCB5不能使用 IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO 呢? (在BCB5的Help沒有此相關敘述)
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-04 13:11:47 IP:61.231.xxx.xxx 未訂閱
您問的問題已進入 DDK ,這個部分 BCB 並沒有直接支援,所以手冊上完全沒有。 如果依您描述,您已裝了 DDK ,並 include parallel.h 但其中的 PDEVICE_OBJECT 出現 Type name expected 的錯誤,表示還有檔案需要 include ,至於是那個檔呢?因為我沒有裝 ddk 所以我不會知道... 建議您直接以 PDEVICE_OBJECT 到 DDK 的目錄去查,看是那個檔有它的定義,再 include 它(假設叫 abc.h)即可。同樣的道理,當您 include abc.h 後,可能在 abc.h 內又有其他的變數名稱未定義,此時,就再找一次吧。 沒辨法囉,您所用的函式一般人比較少用,所以必需自已 include 來 include 去,對於常用的函式,幾乎 BCB 就自動幫我們 include 了。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-05-05 20:05:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!