Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
ВнизУказатели на структуры как аргументы функций (C++) Найти похожие ветки
← →
Джо © (2007-10-05 20:19) [0]Совсем забыл C++.
Есть ДЛЛ на Delphi.
Экспортируется функция (вот обрезки):type
TFolder = packed record
Name: LPSTR;
...
end;
PFolder = ^TFolder;
function GetFirstFolder(Handle: dword; var Folder: PFolder):dword; stdcall;
begin
GetMem (Folder, SizeOf(TFolder));
// Далее выделяется память для PFolder^.Name (GetMem)
// и туда копируется строка символов с завершающим нулем
end;
(Никаких ShareMem).
Из программ на Делфи данная функция из DLL вызывается и работает корректно.
Надыть написать демо для С++.typedef struct _FOLDER {
LPSTR Name;
...
} FOLDER, *PFOLDER;
typedef DWORD (WINAPI * GetFirstFolderProc) (DWORD Handle, PFOLDER folder);
Функцию загружаю динамически, все отлично.
Теперь пытаюсь нечто такое:
FOLDER folder;
res = GetFirstFolder(MCoreHandle, &folder);
if (res == OMS_OK)
{
cout << folder.Name << endl;
}
В полях folder — мусор.
Ткните носом.
← →
Джо © (2007-10-05 20:23) [1]Совсем я ошален.
Там же указатель на указатель.
Спасибо, ветку можно закрывать :)
← →
Sergey Masloff (2007-10-05 20:32) [2]Джо © (05.10.07 20:23) [1]
Вот только хотел...
Хорошо завел привычку сперва до конца прочитать.
;-)))
← →
Джо © (2007-10-05 20:42) [3]> [2] Sergey Masloff (05.10.07 20:32)
> Джо © (05.10.07 20:23) [1]
> Вот только хотел...
> Хорошо завел привычку сперва до конца прочитать.
> ;-)))
:)
Спасибо, совсем уже мозги перекрутились, ведь два часа (!) не мог понять, в чем дело, пока в форум не рискнул написать.
← →
J_f_S (2007-10-06 03:12) [4]
> Спасибо, совсем уже мозги перекрутились, ведь два часа (!
> ) не мог понять, в чем дело, пока в форум не рискнул написать.
>
Попробовать рассказать другому об ошибке - хороший способ понять её причину самому.
← →
имя (2007-10-07 22:11) [5]Удалено модератором
← →
имя (2007-10-07 22:25) [6]Удалено модератором
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.051 c