![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.04.2007
Сообщений: 17
|
![]()
Что необходимо?
Необходимо, что бы из основной формы вызывались функции и процедуры в DLL.В основном сложные процедуры. Что мы имеем? Даже при созданий казалось бы простых функции и вызов их из формы, мы получаем ошибку 'Invalid Pointer Operator' Исходник программы: http://www.ifolder.ru/1819369 В чем проблема? Что я делаю не так..? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 30.03.2007
Сообщений: 124
|
![]()
Иногда переводи что тебе делфи пишет (в начале твоей библиотеки):
Краткий перевод: Если хочеш в качестве параметров или результатов передавать String? допиши в uses ShareMem иначе пользуйся типом PChar или ShortString. ...советую пользоваться вторым вариантом. P/S: Не знаю что тебе за ошибки выкидывает, но мне выдал сообщение с ОК, а затем комп минуты на 3 ушел в ступор и весь проэкт вместе с делфи подвисли. ![]() Спасибо не нужно, а на весы слева кликнуть не помешает!!! Последний раз редактировалось mrandrey; 27.04.2007 в 09:34. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 27.04.2007
Сообщений: 17
|
![]()
Спасибо большое, только теперь у меня выдает Stack OverFlow
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.03.2007
Сообщений: 124
|
![]()
Вызов:
function LibFunction():ShortString stdcall; external 'project2.dll'; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(LibFunction()); end; DLL: uses SysUtils, Classes; {$R *.res} function LibFunction():ShortString;stdcall; begin result := 'Ok'; end; exports LibFunction; begin end. У меня все работает, без ошибок а Stack OverFlow - переполнение стека, может это не из-за вызова фуркции, а изза того что в ней происходит? ![]() Спасибо не нужно, а на весы слева кликнуть не помешает!!! |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.04.2007
Сообщений: 17
|
![]()
Теперь проблема заключаеться в том что , при выхове функции проблем нет, а вот при выхове процедуры EAccessViolation = (( В чем моэет быть проблема??
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка - [Error] Unit1.pas(325): Operator not applicable to this operand type | blackstersl | Общие вопросы Delphi | 6 | 27.08.2008 13:17 |
Invalid floating point operation | Skytis | Помощь студентам | 3 | 07.05.2008 12:16 |
Ошибка: Invalid value for field... (ADO) | Кот из Лета | БД в Delphi | 5 | 26.12.2007 14:02 |
Invalid pointer operation | Димарик | Общие вопросы Delphi | 2 | 05.11.2007 09:53 |