![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
форум | следующая ветвь »
Перевести с C++
brother © (2013-02-14 19:35:00)Помогите перевести структуру на делфи:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb968801%28v=vs.85%29.aspx
Пробую так, но кажись не верно:
DeviceInfo: Record
DeviceType: Word; DeviceNumber, PartitionNumber: Longint;
End;
brother (2013-02-15 04:45:00) [1]спасибо
Игорь Шевченко (2013-02-14 23:37:00) [2]robt (14.02.13 22:30) [12]
> это какбэ WORD а не DWORD
Оставим этот нюанс на совести Microsoft, типы в DDK и в трансляции Jedi совпадают, больше от них ничего не требуется.
DVM (2013-02-14 22:41:00) [3]
> brother © (14.02.13 20:27) [3]
> ругается на: ULONG_PTR
> д7
>
> <Цитата>
> Rouse_ © (14.02.13 20:35) [4]
> DWORD
ULONG_PTR это не всегда DWORD, это
typedef unsigned __int3264 ULONG_PTR;
robt (2013-02-14 22:30:00) [4]
> Я не вижу проблемы.
> in the range 0-32767, and 32768-65535
это какбэ WORD а не DWORD
Игорь Шевченко (2013-02-14 21:56:00) [5]Rouse_ © (14.02.13 21:51) [10]
Ничего не понял, но ладно
Rouse_ (2013-02-14 21:51:00) [6]
> Игорь Шевченко © (14.02.13 21:33) [9]
Дык я еще выше описал тип параметра :)
Поэтому и сказал что нет смысла приводить кусок описания (благо его я тоже дал), без проблемного участка кода :)
Игорь Шевченко (2013-02-14 21:33:00) [7]JwaWinIoCtl.pas
//
// Define the various device type values. Note that values used by Microsoft
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use
// by customers.
//
type
DEVICE_TYPE = DWORD;
ddk\devioctl.h
//
// Define the various device type values. Note that values used by Microsoft
// Corporation are in the range 0-32767, and 32768-65535 are reserved for use
// by customers.
//
#define DEVICE_TYPE ULONG
Я не вижу проблемы.
Rouse_ (2013-02-14 21:23:00) [8]
> Игорь Шевченко © (14.02.13 21:00) [7]
Ну ты разве сам размер параметра не видишь им объявленный? :)
Игорь Шевченко (2013-02-14 21:00:00) [9]Rouse_ © (14.02.13 20:39) [6]
Секретные ?
Rouse_ (2013-02-14 20:39:00) [10]
> Игорь Шевченко © (14.02.13 20:36) [5]
У него с DEVICE_TYPE проблемы изначально...
Игорь Шевченко (2013-02-14 20:36:00) [11]unit JwaWinIoctl;
//
// IOCTL_STORAGE_GET_DEVICE_NUMBER
//
// input - none
//
// output - STORAGE_DEVICE_NUMBER structure
// The values in the STORAGE_DEVICE_NUMBER structure are guaranteed
// to remain unchanged until the system is rebooted. They are not
// guaranteed to be persistant across boots.
//
type
PSTORAGE_DEVICE_NUMBER = ^STORAGE_DEVICE_NUMBER;
{$EXTERNALSYM PSTORAGE_DEVICE_NUMBER}
_STORAGE_DEVICE_NUMBER = record
//
// The FILE_DEVICE_XXX type for this device.
//
DeviceType: DEVICE_TYPE;
//
// The number of this device
//
DeviceNumber: DWORD;
//
// If the device is partitionable, the partition number of the device.
// Otherwise -1
//
PartitionNumber: DWORD;
end;
{$EXTERNALSYM _STORAGE_DEVICE_NUMBER}
STORAGE_DEVICE_NUMBER = _STORAGE_DEVICE_NUMBER;
{$EXTERNALSYM STORAGE_DEVICE_NUMBER}
TStorageDeviceNumber = STORAGE_DEVICE_NUMBER;
PStorageDeviceNumber = PSTORAGE_DEVICE_NUMBER;
Rouse_ (2013-02-14 20:35:00) [12]DWORD
brother (2013-02-14 20:27:00) [13]ругается на:
ULONG_PTR
д7
Rouse_ (2013-02-14 20:13:00) [14]Забирай: http://rouse.drkb.ru/winapi.php#saferemove
Медвежонок Пятачок (2013-02-14 20:01:00) [15]лонгинт - со знаком. А в оригинале без (ULONG )
dword, longword, cardinal ....