Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

помогите перевести на делфи   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.111 c
1-1106107162
Antonn
2005-01-19 06:59
2005.02.06
Проблемы с перерисовкой контролов и форм


3-1104784140
denisych
2005-01-03 23:29
2005.02.06
Как избежать исключения?


14-1106123612
07BB:080Dh
2005-01-19 11:33
2005.02.06
Требования по программе


11-1089378422
Vladimyr
2004-07-09 17:07
2005.02.06
Глобальные клавиши Fn для всей формы


1-1106650897
den303
2005-01-25 14:01
2005.02.06
Защита от дизассемблера