Воскресенье, 22.12.2024, 12:03 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
макросы в delphi
vvova15Дата: Пятница, 05.08.2011, 10:43 | Сообщение # 1
Участник
Зарегистрирован: 24.04.2010
Группа: Пользователи
Сообщений: 83
Статус: Offline
есть ли в delphi препроцессор как в си?
например на си можно напиать так чтение данных с сокета в 2 буфера, по 1024 в каждый:

Code

#define _CHECK_ if((s==(SOCKET)(-1))||(dwReaded<=0)) return -1;
#define DECLAREMEM(name,size) void *name=malloc(size); ZeroMemory(name,size);

....
DECLREMEM(buf1,1024)
recv(s,(char *)buf1,1024,0);
_CHECK_
DECLREMEM(buf2,1024)
recv(s,(char *)buf2,1024,0);
_CHECK_
...


чтобы по несколько раз не писать несколько строк кода объявили макрос DECLAREMEM(name,size), который объявляет и инциализирует участок памяти и _CHECK_ , который проверяет корректность чтения данных.
можно ли так же объявлять макросы в delphi?
попробывал такi:
Code

{$define CHECK readed:=recv(s,loginlen,sizeof(dword),0);
if(s=invalid_socket)or(readed<=0) then begin
result:='error';
exit;
end;}

function auth(s:tsocket):string;
var login,pass:string;
loginlen,passlen:dword;
readed:integer;
begin
readed:=recv(s,loginlen,sizeof(dword),0);
CHECK
readed:=recv(s,login[1],loginlen,0);
CHECK
end;


Но препроцессор почемуто считает CHECK за переменную



ICQ 185-398


Сообщение отредактировал vvova15 - Пятница, 05.08.2011, 10:45
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz