Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2007, 02:56   #1
LEKA
Пользователь
 
Регистрация: 27.04.2007
Сообщений: 17
Восклицание Delphi + dll= Invalid Pointer Operator

Что необходимо?
Необходимо, что бы из основной формы вызывались функции и процедуры в DLL.В основном сложные процедуры.

Что мы имеем?
Даже при созданий казалось бы простых функции и вызов их из формы, мы получаем ошибку 'Invalid Pointer Operator'

Исходник программы:
http://www.ifolder.ru/1819369

В чем проблема? Что я делаю не так..?
LEKA вне форума Ответить с цитированием
Старый 27.04.2007, 09:27   #2
mrandrey
Форумчанин
 
Регистрация: 30.03.2007
Сообщений: 124
По умолчанию

Иногда переводи что тебе делфи пишет (в начале твоей библиотеки):
Краткий перевод:
Если хочеш в качестве параметров или результатов передавать String? допиши в uses ShareMem иначе пользуйся типом PChar или ShortString.

...советую пользоваться вторым вариантом.

P/S: Не знаю что тебе за ошибки выкидывает, но мне выдал сообщение с ОК, а затем комп минуты на 3 ушел в ступор и весь проэкт вместе с делфи подвисли.
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!!

Последний раз редактировалось mrandrey; 27.04.2007 в 09:34.
mrandrey вне форума Ответить с цитированием
Старый 27.04.2007, 20:54   #3
LEKA
Пользователь
 
Регистрация: 27.04.2007
Сообщений: 17
По умолчанию

Спасибо большое, только теперь у меня выдает Stack OverFlow
LEKA вне форума Ответить с цитированием
Старый 28.04.2007, 10:47   #4
mrandrey
Форумчанин
 
Регистрация: 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 - переполнение стека, может это не из-за вызова фуркции, а изза того что в ней происходит?
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!!
mrandrey вне форума Ответить с цитированием
Старый 01.05.2007, 23:38   #5
LEKA
Пользователь
 
Регистрация: 27.04.2007
Сообщений: 17
По умолчанию

Теперь проблема заключаеться в том что , при выхове функции проблем нет, а вот при выхове процедуры EAccessViolation = (( В чем моэет быть проблема??
LEKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка - [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