![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() |
-=CHE@TER=- |
![]()
Сообщение
#1
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Delphi programs in API.
На английском. Очень подробно всё описано, плюс есть исходные коды готовых юнитов. Например SmallUtil, в котором есть все частоиспользуемые подпрограммы, и который в размере меньше, чем SysUtils (автор так утверждает - я не проверял). |
![]() ![]() |
-=CHE@TER=- |
![]()
Сообщение
#2
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Ещё пара глупых вопросов:
1. В Си можно сделать такой финт ушами (кусок кода, структура tlist где-нибудь выше объявлена - не суть важно): CODE int main(int argc, char *argv[]){ struct tlist *list; int i; list = (struct tlist *)malloc(10*sizeof(list[0])); /* 10 элементов */ for(i = 0; i<10; i++){ list[i].par_int = i; /* допустим заполняем как-то поля структуры */ } free(list); return(0); } Собственно, вопрос тупой - можно ли сделать что-нибудь подобное на Delphi? CODE Var T: ^TStruct; I: Integer; Begin GetMem(T, 10*SizeOf(TStruct)); For I:=0 To 9 Do T^[I].par_int:=I; { вот тут оно ругается, как только не пиши } FreeMem(T, 10*SizeOf(TStruct)); End. Есть ли какой-нибудь способ и чтобы он был не сильно через одно место?.. Заводить ещё один указатель и делать Inc(T2, SizeOf(TStruct)); просьба не предлагать. 2. Второй вопрос такой же. Видел в одной программе примерно такой код: CODE Var A,B,C,D: Byte; ... If (A = Byte('R')) And (B = Byte('I')) And (C = Byte('F')) And (D = Byte('F')) Then В связи с этим вопрос - можно ли сделать как-нибудь так, чтобы по-короче было: CODE Var dwSign: Cardinal; ... If dwSign = Cardinal('RIFF') Then { к сожалению, здесь оно ругается} А то писать $46464952, вместо 'RIFF' не очень наглядно, да и лазить в HEX режим каждый раз, чтобы посмотреть как там сигнатура архива выглядит - лень. |
![]() ![]() |
Упрощённая версия | Сейчас: 21st August 2024 - 16:15 |