Форум: "Основная";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
ВнизНужна помощь в переводе с СИ на Delphi Найти похожие ветки
← →
voron70@yandex.ru (2006-02-01 17:47) [0]Есть исходник драйвера написанный на си.
В нем есть переменная типа Handle - это класс в си CHandle, Вопрос какого типа должна быть эта переменная в Дельфи т.к. Handle дельфи не знает а Hwnd не подходит.
Пример из кода:
TDriver.h
***************************
обьявление класса........
private:
HANDLE driverHandle; // driver handle - та самая переменная
TDriver.cpp
***************************
//Destructor. Libera recursos.
TDriver::~TDriver(void)
{
if(driverHandle != NULL)
{
CloseHandle(driverHandle);
driverHandle = NULL;
}
UnloadDriver();
}
← →
Desdechado © (2006-02-01 18:03) [1]> переменная типа Handle - это класс в си CHandle,
как-то не стыкуется с
> HANDLE driverHandle;
в Си сначала пишется тип, потом имя переменной
так вот этотип называется HANDLE, найди его описание в справке или заголовочных файлах
возможно, это эквивалент THandle
← →
Игорь Шевченко © (2006-02-01 18:07) [2]
> возможно, это эквивалент THandle
Прямой эквивалент
← →
Desdechado © (2006-02-01 19:12) [3]сорри, вот это
> переменная типа Handle - это класс в си CHandle,
запутало
подумалось, что handle - это название переменной
← →
Kolan © (2006-02-01 22:26) [4]
TDriver::~TDriver(void)
{
if(driverHandle != NULL)
{
CloseHandle(driverHandle);
driverHandle = NULL;
}
UnloadDriver();
}
Как-то так? Я вообще не спец в C :)driverHandle THandle;
TDiriver.Destroy;
begin
if driverHandle <> INVALID_HANDLE_VALUE then
begin
CloseHandle(driverHandle);
driverHandle := INVALID_HANDLE_VALUE;
end;
end;
← →
Kolan © (2006-02-01 22:27) [5]
TDiriver.Destroy;
begin
if driverHandle <> INVALID_HANDLE_VALUE then
begin
CloseHandle(driverHandle);
driverHandle := INVALID_HANDLE_VALUE;
end;
UnloadDriver;
end;
Забыл...
← →
Desdechado © (2006-02-02 11:00) [6]тогда уж
TDriver::~TDriver(void) => destructor TDriver.Destroy();
← →
voron70 (2006-02-02 14:08) [7]Спасибо за обьяснения. С СИ я знаком просто не очень знаю WinAPI.
← →
voron70 (2006-02-02 15:20) [8]Еще вопрос как переписать на паскаль эту строчку
C++
dirBuffer = (LPTSTR) malloc (len);
если
C++
LPTSTR dirBuffer;
DWORD len = (DWORD)(strlen(name) + strlen(path) + 1);
Delphi
var
dirBuffer : LPTSTR;
len : DWORD;
begin
len := DWORD(strlen(name) + strlen(path) + 1);
.....
Я так понимаю malloc это аналог Setlength вот только как его использовать?
← →
Игорь Шевченко © (2006-02-02 15:21) [9]
> Я так понимаю malloc это аналог Setlength вот только как
> его использовать?
malloc это аналог GetMem
← →
Kolan © (2006-02-02 15:25) [10]Desdechado © (02.02.06 11:00) [6]
Да забыл...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c