Форум: "Прочее";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Внизиз C++ в Delphi непонятная мне строка. Помогите перевести. Найти похожие ветки
← →
DVM © (2007-09-03 22:59) [0]Я не особо большой знаток С/++, поэтому возник вопрос.
Есть код:typedef struct _SHELLAPPBARDATA
{
_SHELLAPPBARDATA(APPBARDATAV1& abdsrc):abd(abdsrc) {}
const APPBARDATAV1& abd;
/**/
DWORD dwMessage;
HANDLE hSharedMemory;
DWORD dwSourceProcessId;
/**/
} SHELLAPPBARDATA, *PSHELLAPPBARDATA;
Как записать в DELPHI строку этой записи
_SHELLAPPBARDATA(APPBARDATAV1& abdsrc):abd(abdsrc) {}
← →
DVM © (2007-09-03 23:01) [1]APPBARDATAV1 - это тоже структура (запись)
← →
J_f_S (2007-09-03 23:06) [2]Сделай классом, раз в делфях не разрешены конструкторы у структур.
_SHELLAPPBARDATA(APPBARDATAV1& abdsrc):abd(abdsrc) {}
=
_SHELLAPPBARDATA(APPBARDATAV1& abdsrc)
{
abd = abdsrc;
}
← →
J_f_S (2007-09-03 23:08) [3]Ну и есть подозрение, что ссылку придется поменять на указатель. Насколько я помню, в дельфях ссылок нет (впрочем, с легкостью могу и наврать)
← →
DVM © (2007-09-03 23:09) [4]
> J_f_S (03.09.07 23:06) [2]
> Сделай классом, раз в делфях не разрешены конструкторы у
> структур.
А, так это конструктор так описывается. Тогда все ясно, спасибо за подсказку.
← →
Rouse_ © (2007-09-03 23:12) [5]
SHELLAPPBARDATA = record
abd: TAppBarData;
dwMessage: DWORD;
hSharedMemory: THandle;
dwSourceProcessId: DWORD;
end;
← →
DVM © (2007-09-03 23:14) [6]
> Rouse_ © (03.09.07 23:12) [5]
Я собственно так и написал сначала, но вот возникли сомнения, а нахрена вообще нужна та строка.
← →
J_f_S (2007-09-03 23:19) [7]
> А, так это конструктор так описывается. Тогда все ясно,
> спасибо за подсказку.
Это конструктор, да, со списком инициализации из одного элемента.
> Rouse_ © (03.09.07 23:12) [5]
> SHELLAPPBARDATA = record abd: TAppBarData; dwMessage:
> DWORD; hSharedMemory: THandle; dwSourceProcessId: DWORD;
> end;
В вы уверены, что элемент abd станет ссылкой, а не передастся по значению?
← →
J_f_S (2007-09-03 23:21) [8]Все ж таки между ссылкой на обьект и обьектом есть некоторая разница :)
Возможно, лучше сделать abd указателем.
← →
DVM © (2007-09-03 23:21) [9]
> В вы уверены, что элемент abd станет ссылкой, а не передастся
> по значению?
А действительно. ИМХО не станет он ссылкой.
← →
DVM © (2007-09-03 23:22) [10]
> Возможно, лучше сделать abd указателем.
я тоже так думаю.
← →
Rouse_ © (2007-09-03 23:30) [11]каков вопрос - таков ответ... по классике это делают как array[0..0] of TAppBarData, но я как понял что о деревяшке тут даже не идет и речи по сути вопроса...
← →
evvcom © (2007-09-04 11:53) [12]Сделать можно как угодно, лишь бы 4 байта заняло. А как будешь с этим работать - это уже другой вопрос. Так что
> Rouse_ © (03.09.07 23:30) [11]
> каков вопрос - таков ответ...
← →
Mystic © (2007-09-04 12:07) [13]По хорошему надо было бы писать:
typedef struct _SHELLAPPBARDATA
{
explicit _SHELLAPPBARDATA(APPBARDATAV1& abdsrc):abd(abdsrc) {}
....
} SHELLAPPBARDATA, *PSHELLAPPBARDATA;
а так надо быть внимательным, возможно неявное преобразование от APPBARDATAV1& к _SHELLAPPBARDATA
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.062 c