Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Внизмассив структур в делфи Найти похожие ветки
← →
littlebat (2005-08-10 16:08) [0]Возникал проблемма.
Есть записьTHoliday = record
Month, Day: integer;
end;
Есть динамический массив, содержащий эдлементы - holidays: array of THoliday;
Есть DLL написанная другим человеком на MS VS++.
Объявляю ее следующим образом:
function DefineSHoliday(var h:array of THoliday; error: array of char): integer; cdecl; external "serv4cuf.dll";
Далее вызываю ее в кодеres:=DefineSHoliday(holidays,errormess);
и как только оно пытается передать параметры, возвращает ошибку:
"raised exception class EAccesViolation with message "Access violation atadress 1001251D" in module "serv4cuf.dll""
что делать??????
пробовал так:function DefineSHoliday(p: pointer; error: array of char)
- такая же ошибка.. в чем проблемма?! помогите! надо срочно!!
← →
begin...end © (2005-08-10 16:13) [1]Проверьте соответствие соглашений о вызовах в DLL и хост-приложении.
← →
Digitman © (2005-08-10 16:23) [2]
> в чем проблемма?
в том что в среде MS VC++ нет никаких дин.массивов
а если и есть (будут), то их идеология/внутр.структура/механизм никак не соответствуют идеологии/внутр.структуре/механизму дин.массивов, предложенных Борландом в Делфи-среде.
> Объявляю ее следующим образом:
>
> function DefineSHoliday(var h:array of THoliday; error:
> array of char): integer; cdecl; external "serv4cuf.dll";
объявление - от балды ?
производитель dll так и сказал тебе, мол, параметры ф-ции DefineSHoliday() есть ничто иное как дин.массивы ?
← →
littlebat (2005-08-10 16:29) [3]>>производитель dll так и сказал тебе, мол, параметры ф-ции DefineSHoliday() есть ничто иное как дин.массивы ?
да!! так и сказал! он за соседним компом сидит и сам не может понять в чем проблемма!
← →
Digitman © (2005-08-10 16:35) [4]
> littlebat (10.08.05 16:29) [3]
> да!! так и сказал! он за соседним компом сидит и сам не
> может понять в чем проблемма!
желаю руководству поскорей избавиться от такого "специалиста за соседним компом"
а тебе желаю перед тем как его уволят стребовать с него ПРОТОТИП этой ф-ции, дабы самому и ГРАМОТНО перевести его в Паскаль, убедившись что никакими дин.массивами там и не пахнет даже
← →
begin...end © (2005-08-10 16:38) [5]Точно, проглядел упоминание про C++...
Но тогда, вероятно, следует заменить динамические/открытые массивы на обычные типизированные указатели. Ну и не забыть про соответствие соглашений о вызовах.
В общем, без прототипа, конечно, не обойтись.
← →
Digitman © (2005-08-10 16:41) [6]
> В общем, без прототипа, конечно, не обойтись
прототип - самое малое, без чего не обойтись !
по-хорошему же должно быть детальное описание параметров ф-ции : их типы, назначение (в соответствии с логикой ф-ции) и т.д. и т.п.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c