Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];

Вниз

Массив в длл и обратно   Найти похожие ветки 

 
murtix   (2005-07-18 02:30) [0]

Вот этот код не работает

;--------ПРОГРАММА-----------------
TRealArray = array of Double;
TFuncProc = procedure (var x,y : TRealArray);
....
LibHandle := LoadLibrary(PChar(PlugInsPath + Plugins[i].PlFileName));
   if LibHandle >= 32 then
     @funcName := GetProcAddress(LibHandle, PChar(Plugins[i].PlugNames[j]));
   if @funcName <> nil then begin
     SetLength(x, 5000);
     SetLength(y, 5000);
     ShowMessage("000");
     funcName(x, y);
;длл загружается, но когда дело доходит до вычислений, происходит Access violation
     ShowMessage(SysErrorMessage(GetLastError));
   end;
 FreeLibrary(LibHandle);

;--------ДЛЛ-----------------
procedure Fxt_func(var Ax,Ay : TRealArray); stdcall;



Вопрос: почему? Или подскажите,пожалуйста, другой способ.


 
Германн ©   (2005-07-18 02:35) [1]

Скорее всего опять ShareMem :(
О сколько раз твердили миру, что надо читать, то что написано!


 
Юрий Зотов ©   (2005-07-18 04:03) [2]

Во-первых, проверьте использование ShareMem.

Во-вторых, несогласованы соглашения о вызове: в DLL стоит stdcall, в EXE его нет.


 
Anatoly Podgoretsky ©   (2005-07-18 09:22) [3]

Во-первых, проверьте использование ShareMem.

Во-вторых, несогласованы соглашения о вызове: в DLL стоит stdcall, в EXE его нет.

В третьих нежелание автора сотрудничать


 
murtix   (2005-07-18 22:20) [4]

Германн
Что за ShareMem как его использовать.

Юрий Зотов
Во-вторых, несогласованы соглашения о вызове: в DLL стоит stdcall, в EXE его нет.
Разве для LoadLibrary это нужно, ведь длл запускается функция вызывается.
Anatoly Podgoretsky
В третьих нежелание автора сотрудничать
я весь день был на работе :(


 
Anatoly Podgoretsky ©   (2005-07-18 22:24) [5]

murtix   (18.07.05 22:20) [4]
Даже если бы не было параметро, то все равно стоит согласовывать вызов.


 
Юрий Зотов ©   (2005-07-18 22:26) [6]

> murtix   (18.07.05 22:20) [4]

> Что за ShareMem как его использовать.
А справка не работает?

> Разве для LoadLibrary это нужно, ведь длл запускается функция
> вызывается.
Зачем использовать незнакомые конструкции? Уберите stdcall совсем, в данном случае оно не нужно.


 
murtix   (2005-07-19 00:02) [7]

Юрий Зотов
Не работает, битая дельфя (пираты рулят):(
stdcall убрал, работает, тока при закрытии программы происходит ошибка :( щас будем выяснять.


 
Юрий Зотов ©   (2005-07-19 00:23) [8]

> murtix   (19.07.05 00:02) [7]

При чем тут битая дельфя и пираты - так и не понял. А то, что "при закрытии программы происходит ошибка" - вот это очень похоже на отсутствие (или неверное использование) ShareMem. Особенно, если это ошибка 216 или 217.


 
murtix   (2005-07-19 00:33) [9]

В общем пиратская дельфя не устанавливается хелп, не знаю почему дернул меня черт установить 2005.
А ошибка : Runtime Error 216 at 004032E6? блин.
А ShareMem у меня отсутсвует, может хотябы намекнете.


 
alex-drob   (2005-07-19 00:39) [10]

А про Sharemem написанно при создании новой dll в коментарии.

В длл в uses пишешь sharemem, первым. И в программе project -> view source тоже sharemem.


 
murtix   (2005-07-19 00:49) [11]

Спасибо работает никаких Runtime Error 216 :).
Кстати а что будет если я захочу подключить длл написанные на других языках С, асм?


 
Юрий Зотов ©   (2005-07-19 00:56) [12]

> murtix   (19.07.05 00:49) [11]

> что будет если я захочу подключить длл написанные на других
> языках С, асм?

Создайте новую DLL и прочтите в ее коде длинный-длинный комментарий. Там все и узнаете.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.051 c
3-1120208921
Kreyl
2005-07-01 13:08
2005.08.07
Чайницкий вопрос про добавление данных


1-1121935230
AGENT
2005-07-21 12:40
2005.08.07
Курсоры


3-1120116915
Apachi
2005-06-30 11:35
2005.08.07
Возрощает ли ADOCommand количесво измененных записей


3-1120285524
Draught
2005-07-02 10:25
2005.08.07
Фильтр в ADOTable


10-1097565795
andrey__
2004-10-12 11:23
2005.08.07
сервис и внешний сервер автоматизсции





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский