powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Трабл использования dll на delphi в BuilderC++
11 сообщений из 11, страница 1 из 1
Трабл использования dll на delphi в BuilderC++
    #32353670
Storm_coolstorm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал DLL модуль на Delphi (AnsiString xxx()) и пытаюсь юзать ее на BuilderC++. Прописываю следующее в C++:
1. В заголовке - typedef AnsiString (*Func)();
2. В объявлении класса - HINSTANCE mhDll и Func mpFunc;
3. В ф-ии создания формы - mhDll = LoadLibrary("name.dll"), потом mpFunc = (Func)GetProcAddress(mhDll, "xxx");

Потом вызываю данную функцию - mpFunc(); и здесь собственно ошибка вышибает типа - "Invalid pointer operation". В чем собсна дело? Спасибо!

P.S. Dll лежит в папке проекта!
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32353738
Фотография Nick74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты проверял что вернула GetProcAddress??
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32353784
Sclif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в том что Паскаль и Си в разные стороны раскручивают стэки.
Надо помутить с pascall или stdcall.
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32353789
Фотография Nick74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У него функция без аргументов... Какая разница в какую сторону раскручивать стек?
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32353818
Storm_coolstorm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
функция вызывается нормальна, даже нормальна вызывается подряд несколко фунций

String str = xxx();
str = xxx();
str = xxx();
str = xxx();

а вот после последней вырубается эта ошибка
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32353850
Sclif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да то что без аргументов я чет не посмотрел :) Я сразу подумал на
это типа частая ошибка :)

А значение то возвращается?

Всетаки посмотри на счет stdcall у функции в dll.
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32353905
Фотография Nick74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После последней? То есть после последнего оператора? При уничтожении str? Наверно проблема со счетчиком AnsiString - то ли кучи разные у них, то ли еще что-то... Попробуй скажи str.Unique после первого вызова - что будет?

Вообще нехорошая вещь передавать такие типы между приложениями, скомпилированными под разными средами. А вдруг это другой тип будет (Или есть уже) в следующей версии Builder, а DLL ты забудешь перекомпилить? Попробуй передавать в функцию PCHAR на массив, который объявляешь в Exe. Это точно будет работать. Правда тогда размер данных ограничен будет переданным массивом.
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32353909
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String str = xxx();
str = xxx();
str = xxx();
str = xxx();


попробуй через

String *str;

str= new String;
*str = xxx();


должно работать
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32354038
new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
о спасибо Оракул, все заработало, а в чем дело было, почему не работало до этого
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32354989
Sclif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делал dll для Delphi на BCB и использовала для передачи связку *char и PChar - работала. Всмысле в dll на BCB был *char а в делфи давал ему PChar. Наоборот соответственно тоже должно железно работать.

Мне кажется проблема в том что в Delphi
var Str : AnsiString - указатель на AnsiString, а в C указатель на AnsiString соответственно со *. Хотя может и не так. Вообще че-то где-то читал про String параметры в dll На BCB мол там как то криво они могут обрабатываться... Хотя тут не параметры, но я бы все равно подстраховался.
...
Рейтинг: 0 / 0
Трабл использования dll на delphi в BuilderC++
    #32355028
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык ,
когда создаешь длл-ку на BC++ он же сразу тебе вставляет комментарий
почему не желательно юзать Ансистринг и что нужно для этого делать :)

____
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Трабл использования dll на delphi в BuilderC++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]