Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите перевести на делфи [D7, WinXP]


Страницы:   1 2

slim ©   (2005-01-24 13:05:00) 

к примеру это:
typedef enum eDeCoderSettings
{
SET_BRIGHTNESS = 0,
SET_CONTRAST,
SET_SATURATION,
SET_HUE,
SET_SOURCE_IN,
SET_OVERSAMPLING,
SET_SOURCE_OUT,
SET_SYSTEM_IN,
SET_SYSTEM_OUT
};
или это:
#define IOCTL_GETMAPMEMORY    CTL_CODE(FILE_DEVICE_UNKNOWN, 0xA00, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_GETMAPREGS    CTL_CODE(FILE_DEVICE_UNKNOWN, 0xA01, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SET_NOTIFICATION_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN, 0xA02, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_READSTATUSREG    CTL_CODE(FILE_DEVICE_UNKNOWN, 0xA03, METHOD_BUFFERED, FILE_ANY_ACCESS)
или это:
typedef struct
{
ULONG PhysAddr;
PVOID m_KernelAddress;
PVOID m_UserAddress;
} MEMORY_ADDRESS;
пожалуйста горю.


slim   (2005-01-24 17:01:00) [1]

вот теперь всё понял :)
спасибо до встречи!


Ega23   (2005-01-24 16:59:00) [2]

PVOID - pointer
ULONG - integer
USHORT - smallint


slim   (2005-01-24 16:41:00) [3]

вот по поводу ctl_code объяснил
но вернусь к началу:
исть такая ерунда в оригенальном коде
typedef struct
{
ULONG PhysAddr;
m_Step:USHORT;
PVOID m_UserAddress;
} MEMORY_ADDRESS;
чем можно зпменить последние 2 типа в делфи чтоб длл поняла?


Ega23   (2005-01-24 16:24:00) [4]

ну наверное есть вариант оставить длл в первозданном виде а юзать её из делфи?

собственно, лично я так и делаю. Но для этого тебе совершенно не нужно знать, что такое макрос CTL_CODE.
Хотя, если есть большое желание разобраться...

В двух словах: dll взаимодействует с драйвером посредством команды
DeviceIoControl. Грубо говоря, драйверу пересылается указатель на входной буффер данных, на выходной буффер и код. Драйвер анализирует этот код и, соответственно, выполняет какое-то действие. Один из параметров данной функции и есть твой CTL_CODE


slim   (2005-01-24 16:04:00) [5]

ну наверное есть вариант оставить длл в первозданном виде а юзать её из делфи?
в любом случае спасибо


Ega23   (2005-01-24 15:47:00) [6]

Ну, что касается сроков - ты гораздо больше времени убьёшь, пытаясь эту dll на delphi корректно перевести.

Единственное, что могу посоветовать - качай DDK с www.microsoft.com, устанавливай, ковыряйся в примерах и хелпе. Плюс MSDN. Я почти всё оттуда брал.


slim   (2005-01-24 15:41:00) [7]

согласен паралельно этим и занимаюсь но сроки....
времени ваобщё нет практически.
подобное делал но там проще было com библиотека
и нормальное sdk


Ega23   (2005-01-24 15:37:00) [8]

ну не умею я в vc++

Я тебе честно скажу: проще в с++ разобраться, чем этот код в Делфи пытаться перевести. Теоретически это сделать можно. практически - просто бессмысленно, т.к. для адекватного перевода тебе так или иначе потребуются знания С++.

Кстати, хороший повод разобраться с другим языком.


slim   (2005-01-24 15:32:00) [9]

вот ссылка:
stream-labs.com/dowmload/sl_alpha_sdk_031104.zip
ну не умею я в vc++
библеотека есть в sdk мне проще на данный момент с длл-кой разобраться чем почти с нуль в vс++  к примеру что означает
тип Pvoid ?
ну чайник я чистолюбивый но как обычно одного чистолюбия не хватает тут знания нужны вот и обратился к мастерам за знанием и опытом.


Ega23   (2005-01-24 15:23:00) [10]

2 slim ©   (24.01.05 15:14) [12]

Ну а Делфи-то нафига? Чем vc не устраивает?
Я, к примеру, когда драйвер писал, действовал по следующей схеме
UserApplication -> DriverAPI.dll -> Driver
UserApplication действительно на Делфи писал, это гораздо удобнее. Всё остальное - с и с++


slim   (2005-01-24 15:14:00) [11]

код из sdk
к титровалке(Alpha plus)
хочу повторить чтоб понять хоть не много как эта железяка работает если хочеш сейчас ссылку кину сам посмотриш


Mutniy   (2005-01-24 15:10:00) [12]

Понятно ну а тогда зачем тобе нужон Сишный код переводить ?


slim   (2005-01-24 14:47:00) [13]

dll уже на vс++  есть я пытаюсь сней на делфе работать


Ega23   (2005-01-24 14:45:00) [14]

2 Mutniy   (24.01.05 14:40) [8]

Да он, по ходу, dll и делает. API для драйвера. Только вот непонятно, нафига он это на delphi делает...


Mutniy   (2005-01-24 14:40:00) [15]

значит получается и  CTL_CODE в свою очередь является макросом ?

если так то хмм. даже не знаю ему проще тогды обертку сделать ввиде dll аль я не прав ?


Ega23   (2005-01-24 14:32:00) [16]

2 Mutniy   (24.01.05 14:28) [6]
а CTL_CODE в принципе даже может быть и функцией :)

Driver writers can use the system-supplied macro CTL_CODE to set up new I/O control codes. To define an I/O control code, follow these guidelines for using CTL_CODE:
.....


Mutniy   (2005-01-24 14:28:00) [17]

дальше код покажи потомучто

#define IOCTL_GETMAPMEMORY    CTL_CODE(FILE_DEVICE_UNKNOWN, 0xA00, METHOD_BUFFERED, FILE_ANY_ACCESS)

компилятор вместо
IOCTL_GETMAPMEMORY

вставит
CTL_CODE(FILE_DEVICE_UNKNOWN, 0xA00, METHOD_BUFFERED, FILE_ANY_ACCESS)

а CTL_CODE в принципе даже может быть и функцией :)


Ega23   (2005-01-24 14:26:00) [18]

2 slim ©   (24.01.05 13:05)

Driver API на Delphi???
Ну-ну...


Smithson   (2005-01-24 14:25:00) [19]

[2] сделай сам по аналогии с [1]
а pvoid это pointer


slim   (2005-01-24 14:23:00) [20]

и это:
pvoid


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо