|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.10.2008, 10:14 | #1 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Явная загрузка DLL
Пытаюсь явно загрузить DLL и выполнить функцию, но либо выдает ошибку Acess Volation, либо считает неправильно. Может я что забыл?
Код DLL Код:
Код:
|
03.10.2008, 10:22 | #2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Добавь
function Summa (x:integer; y:integer):integer; external 'Summ.dll'; |
03.10.2008, 10:59 | #3 | |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Цитата:
Код:
Последний раз редактировалось alexBlack; 03.10.2008 в 11:08. |
|
03.10.2008, 11:11 | #4 | |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Цитата:
|
|
03.10.2008, 11:30 | #5 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
И ещё вопросик. Если DLL загружать по пути вот так
Код:
[DCC Error] Proga.pas(32): E2010 Incompatible types: 'string' and 'PWideChar' Как исправить? |
03.10.2008, 12:27 | #6 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Вообще-то простое приведение:
dll:=LoadLibrary(PChar(ExtractFileP ath(ParamStr(0))+'Summ')); только почему PWidePchar ? Должно быть PAnsiChar. Вы используете LoadLibraryW ? тогда: Код:
|
03.10.2008, 12:52 | #7 | ||
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Цитата:
Цитата:
dll:=LoadLibrary(PWideChar(ExtractF ilePath(ParamStr(0))+'Summ')); Спасибо. |
||
08.10.2008, 13:05 | #8 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Ещё одни вопросик. Не начинал новую тему, потому что в принципе и в эту тему подходит.
Есть DLL с экпортируемой процедурой: Код:
Когда я её вызываю так, то всё нормально работает: Код:
Сама процедура вызова: Код:
Код:
Последний раз редактировалось FaTaL; 08.10.2008 в 13:08. |
08.10.2008, 13:10 | #9 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
В первом случае -
Run('C:\Archiv\','C:\Arch22222\'); нет распределения памяти под строки. Во втором - есть. Возможно ShareMem не подключен или не первый в списке uses. |
08.10.2008, 13:24 | #10 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузка | Witaliy | PHP | 3 | 12.07.2008 18:06 |
Предварительная загрузка | GAGARIN-NEW | JavaScript, Ajax | 10 | 26.11.2007 22:55 |
Загрузка ЦП | HelloZAPOR | Win Api | 7 | 05.11.2007 15:43 |
Загрузка | UnD)eaD)Snake | Общие вопросы Delphi | 10 | 19.08.2007 11:24 |
Загрузка DLL | Hollander | Общие вопросы Delphi | 3 | 21.05.2007 20:19 |