Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1106403052
Avi
2005-01-22 17:10
2005.02.06
Взлом программы.


1-1106384870
lexales
2005-01-22 12:07
2005.02.06
Помогите с INI


4-1103030917
Phantomouse
2004-12-14 16:28
2005.02.06
COM+HEX


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


6-1101151614
userX
2004-11-22 22:26
2005.02.06
Как отправить E-Mail не используя NM сокетов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский