__________________________________________________ ____________________C Code:
DWORD byteread;
Mình đang học hệ điều hành. Thầy giáo cho đoạn code này làm ví dụ để truy nhật sector trên ổ cứng. Tuy nhiên, đoạn code lại có chút vấn đề:
Đây là code sử dụng WIN32 API, mình gặp phải lỗi "invalid conversion from `int*' to `DWORD*' " và " initializing argument 4 of `BOOL ReadFile(void*, void*, DWORD, DWORD*, _OVERLAPPED*)' ". Bạn nào biết lỗi này chữa như thế nào chỉ mình với. Cảm ơn bạn nhiềuC Code:
#include <windows.h> #include <stdio.h> int main(int argc, char *argv[]){ HANDLE hDisk; BYTE Buf[512]; int byteread,i; hDisk=CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,0,NULL); else { ReadFile(hDisk,Buf,512,&byteread,NULL); CloseHandle(hDisk); } return 0; }
Đã được chỉnh sửa lần cuối bởi mask_of_zorro : 20-04-2012 lúc 07:28 PM.
[char] http://union.zing.vn/character/gachoi.html?user=2975349[/char]
__________________________________________________ ____________________C Code:
DWORD byteread;
Kết bạn với tôi <3
Skype: giautm
Facebook: https://fb.com/giautm.duongntt
Email: giau.tmg@gmail.com
Thanks bạn. Thằng bạn mình cũng bày 1 cách khác đó là:thì cũng được. Cái này là do cách lưu trữ trên ổ cứng ha? :SC Code:
long unsigned int byteread, i;
Đã được chỉnh sửa lần cuối bởi mask_of_zorro : 20-04-2012 lúc 07:28 PM.
[char] http://union.zing.vn/character/gachoi.html?user=2975349[/char]
Kiểu dữ liệu DWORD được khai báo trong minwindef.h như sau:
Lỗi "invalid conversion from `int*' to `DWORD*' " là do bạn truyền địa chỉ của biến int, trong khi hàm cần địa chỉ của biến unsigned long, nên dùng DWORD trong các hàm của windows (nếu nó khai báo rõ), không nên dùng "long unsigned int". Vì biết đâu đc, trong tương lai, windows thay đổi kiểu DWORD sang kiểu khác, lúc đó ct của bạn sẽ bị crash. ~~>"<~~C Code:
typedef unsigned long DWORD;
P/s: Nói chung là khi lập trình trên platform nào thì bạn nên tuân thủ các kiểu dữ liệu của nó.
Đã được chỉnh sửa lần cuối bởi doicanhden : 20-04-2012 lúc 06:45 PM.
Kết bạn với tôi <3
Skype: giautm
Facebook: https://fb.com/giautm.duongntt
Email: giau.tmg@gmail.com
[char] http://union.zing.vn/character/gachoi.html?user=2975349[/char]