Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Внизпомогите перевести на делфи Найти похожие ветки
← →
slim © (2005-01-24 13:05) [0]к примеру это:
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;
пожалуйста горю.
← →
begin...end © (2005-01-24 14:11) [1]> slim © (24.01.05 13:05)
> к примеру это:
> typedef enum eDeCoderSettings
> ...type
eDeCoderSettings =
(SET_BRIGHTNESS = 0,
SET_CONTRAST,
SET_SATURATION,
SET_HUE,
SET_SOURCE_IN,
SET_OVERSAMPLING,
SET_SOURCE_OUT,
SET_SYSTEM_IN,
SET_SYSTEM_OUT);
← →
slim © (2005-01-24 14:22) [2]спасибо!
последнее осталось,что это:
#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)
← →
slim © (2005-01-24 14:23) [3]и это:
pvoid
← →
Smithson (2005-01-24 14:25) [4][2] сделай сам по аналогии с [1]
а pvoid это pointer
← →
Ega23 © (2005-01-24 14:26) [5]2 slim © (24.01.05 13:05)
Driver API на Delphi???
Ну-ну...
← →
Mutniy (2005-01-24 14:28) [6]дальше код покажи потомучто
#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:32) [7]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:40) [8]значит получается и CTL_CODE в свою очередь является макросом ?
если так то хмм. даже не знаю ему проще тогды обертку сделать ввиде dll аль я не прав ?
← →
Ega23 © (2005-01-24 14:45) [9]2 Mutniy (24.01.05 14:40) [8]
Да он, по ходу, dll и делает. API для драйвера. Только вот непонятно, нафига он это на delphi делает...
← →
slim © (2005-01-24 14:47) [10]dll уже на vс++ есть я пытаюсь сней на делфе работать
← →
Mutniy (2005-01-24 15:10) [11]Понятно ну а тогда зачем тобе нужон Сишный код переводить ?
← →
slim © (2005-01-24 15:14) [12]код из sdk
к титровалке(Alpha plus)
хочу повторить чтоб понять хоть не много как эта железяка работает если хочеш сейчас ссылку кину сам посмотриш
← →
Ega23 © (2005-01-24 15:23) [13]2 slim © (24.01.05 15:14) [12]
Ну а Делфи-то нафига? Чем vc не устраивает?
Я, к примеру, когда драйвер писал, действовал по следующей схеме
UserApplication -> DriverAPI.dll -> Driver
UserApplication действительно на Делфи писал, это гораздо удобнее. Всё остальное - с и с++
← →
slim © (2005-01-24 15:32) [14]вот ссылка:
stream-labs.com/dowmload/sl_alpha_sdk_031104.zip
ну не умею я в vc++
библеотека есть в sdk мне проще на данный момент с длл-кой разобраться чем почти с нуль в vс++ к примеру что означает
тип Pvoid ?
ну чайник я чистолюбивый но как обычно одного чистолюбия не хватает тут знания нужны вот и обратился к мастерам за знанием и опытом.
← →
Ega23 © (2005-01-24 15:37) [15]ну не умею я в vc++
Я тебе честно скажу: проще в с++ разобраться, чем этот код в Делфи пытаться перевести. Теоретически это сделать можно. практически - просто бессмысленно, т.к. для адекватного перевода тебе так или иначе потребуются знания С++.
Кстати, хороший повод разобраться с другим языком.
← →
slim © (2005-01-24 15:41) [16]согласен паралельно этим и занимаюсь но сроки....
времени ваобщё нет практически.
подобное делал но там проще было com библиотека
и нормальное sdk
← →
Ega23 © (2005-01-24 15:47) [17]Ну, что касается сроков - ты гораздо больше времени убьёшь, пытаясь эту dll на delphi корректно перевести.
Единственное, что могу посоветовать - качай DDK с www.microsoft.com, устанавливай, ковыряйся в примерах и хелпе. Плюс MSDN. Я почти всё оттуда брал.
← →
slim © (2005-01-24 16:04) [18]ну наверное есть вариант оставить длл в первозданном виде а юзать её из делфи?
в любом случае спасибо
← →
Ega23 © (2005-01-24 16:24) [19]ну наверное есть вариант оставить длл в первозданном виде а юзать её из делфи?
собственно, лично я так и делаю. Но для этого тебе совершенно не нужно знать, что такое макрос CTL_CODE.
Хотя, если есть большое желание разобраться...
В двух словах: dll взаимодействует с драйвером посредством команды
DeviceIoControl. Грубо говоря, драйверу пересылается указатель на входной буффер данных, на выходной буффер и код. Драйвер анализирует этот код и, соответственно, выполняет какое-то действие. Один из параметров данной функции и есть твой CTL_CODE
← →
slim © (2005-01-24 16:41) [20]вот по поводу ctl_code объяснил
но вернусь к началу:
исть такая ерунда в оригенальном коде
typedef struct
{
ULONG PhysAddr;
m_Step:USHORT;
PVOID m_UserAddress;
} MEMORY_ADDRESS;
чем можно зпменить последние 2 типа в делфи чтоб длл поняла?
← →
Ega23 © (2005-01-24 16:59) [21]PVOID - pointer
ULONG - integer
USHORT - smallint
← →
slim © (2005-01-24 17:01) [22]вот теперь всё понял :)
спасибо до встречи!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.05 c