вызов dll

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: вызов dll

Сообщение Mr.Smart » 27.09.2010 13:42:14

Вам нужен указатель на char т.е. ^char что соответствует типу PChar.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: вызов dll

Сообщение Kitayets » 27.09.2010 14:25:50

а разве в си есть стринг?
как же тогда исправить?? подскажите пожалуйста а то си нас учили уже давненько да и не сказал бы что хорошо :)

Код: Выделить всё
function SSQ_SetGameServer(address:PChar):boolean; stdcall;

Код: Выделить всё
ping_success:=SSQ_SetGameServer(PChar(address));
Kitayets
постоялец
 
Сообщения: 171
Зарегистрирован: 05.05.2010 21:15:24

Re: вызов dll

Сообщение danya » 27.09.2010 16:59:28

хм спасибо в принципе на работу это не повлияло зависание программы осталось
danya
незнакомец
 
Сообщения: 9
Зарегистрирован: 24.09.2010 14:58:53

Re: вызов dll

Сообщение BadBoyAlex » 24.03.2011 12:27:01

При вызове функции из dll-ки (что статически (не желательно!), что динамически) выдаёт ошибку: SIGSEGV и ассемблер со строкой "
myError.JPG
" Из-за чего это может быть?
Аватара пользователя
BadBoyAlex
постоялец
 
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород

Re: вызов dll

Сообщение Mr.Smart » 24.03.2011 12:40:53

Соблюдены соглашения о передачи параметров функции?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: вызов dll

Сообщение BadBoyAlex » 24.03.2011 12:52:12

Mr.Smart писал(а):Соблюдены соглашения о передачи параметров функции?

Извините, но я вас не понял...
Аватара пользователя
BadBoyAlex
постоялец
 
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород

Re: вызов dll

Сообщение Mr.Smart » 24.03.2011 12:57:50

Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: вызов dll

Сообщение BadBoyAlex » 24.03.2011 13:01:49


Аааа... Ну, конечно соблюдены!

Покопавшись немного, обнаружил, что этот код не рабочий:
Код: Выделить всё
function GenerateModID: ShortString;
var ModIDGenFrm: TModIDGenFrm;
    s: string;
begin
s:= '';
ModIDGenFrm:= TModIDGenFrm.Create(nil);
with ModIDGenFrm do
begin
ShowModal;
s:= Edit.Text;
Free;
end;
Result:= s;
end;

Однако, такой код вполне работоспособен:
Код: Выделить всё
function GenerateModID: ShortString;
var ModIDGenFrm: TModIDGenFrm;
    s: string;
begin
ModIDGenFrm:= TModIDGenFrm.Create(nil);
Result:= 'Test string';
end;

Отсюда вопрос: что не так в первом коде?
Аватара пользователя
BadBoyAlex
постоялец
 
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород

Re: вызов dll

Сообщение Mr.Smart » 24.03.2011 13:05:49

Скорее всего "рушится" куча.
Почитайте это.
И можно эту статью.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: вызов dll

Сообщение BadBoyAlex » 24.03.2011 13:17:52

Mr.Smart писал(а):Скорее всего "рушится" куча.
Почитайте это.
И можно эту статью.

К сожалению, не помогло =(

UPD: только сейчас заметил: он не может показать форму, но СОЗДАЁТ её! Что за...
Аватара пользователя
BadBoyAlex
постоялец
 
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород

Re: вызов dll

Сообщение Vadim » 24.03.2011 14:34:04

BadBoyAlex писал(а):он не может показать форму, но СОЗДАЁТ её!

Уверены, что создаёт? Попробуйте обратиться к компонентам формы и посмотреть, что будет.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: вызов dll

Сообщение BadBoyAlex » 24.03.2011 14:47:10

Vadim писал(а):
BadBoyAlex писал(а):он не может показать форму, но СОЗДАЁТ её!

Уверены, что создаёт? Попробуйте обратиться к компонентам формы и посмотреть, что будет.

Так самое интересное: СЧИТЫВАЕТ текст лайбла!
Аватара пользователя
BadBoyAlex
постоялец
 
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород

Re: вызов dll

Сообщение Vadim » 24.03.2011 14:52:19

Тогда попробуйте вместо ShowModal использовать Show.
И, раз уж доступ к форме есть, проверьте её координаты.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: вызов dll

Сообщение BadBoyAlex » 24.03.2011 15:02:06

Vadim писал(а):Тогда попробуйте вместо ShowModal использовать Show.
И, раз уж доступ к форме есть, проверьте её координаты.

к сожалению, то же самое и с Show. Т.е. проверить координаты?
Аватара пользователя
BadBoyAlex
постоялец
 
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород

Re: вызов dll

Сообщение Maxizar » 24.03.2011 15:46:46

BadBoyAlex писал(а):При вызове функции из dll-ки (что статически (не желательно!), что динамически) выдаёт ошибку: SIGSEGV и ассемблер со строкой "

Какая функция?...Как она записана, объявлена в длл, чья ДЛЛ ваша, билла гейтса. как подключаете ДЛЛ, как используете?...
При чем тут:
Код: Выделить всё
function GenerateModID: ShortString;
- или это и есть процедура из Длл?..
Нам не нужен ваш проект (если там что то ценное или комерческое) но могли бы сделать аналогичную ситуацию через пустой проект с формой с длл, с аналогичной функцией из длл. Приложить в виде архива... А то вот я сначала сел делать.. и что... что делать то.. где код... у меня при вызове моей длл все работает просто на ура...
Во всем проекте нам будет сложно разобраться, но вот еслиб было над чем работать.. где были бы исходники всего проекта (отмечаю только пустая форма + длл с одной аналогичной функцией и вызовом и все такое..)Тобишь пустой проект показывающей где вылетает, можно было бы что то сказать...
Вы же сами видите, вам суют только ссылки где можно прочитать про длл и всякое такое.. почему нет ответов на ваш вопрос?.. да потому что вопроса то и нет... он был типа: Спартак - чемпион... (вылетает функция из длл.) и что...

Ну можно же было написать как то так:
Привожу урезанные варианты исходников:
Код ДЛЛ:

Код формы в которой вызываем функцию из длл:

вот тут вылетает ошибка:
описание ошибки скрины..
Прилагаю архив проекта для того чтобы Вы не тратили время на телепатию и копипаст из блока кодов. :
Поймите же, если ошибка в строке кода (для одной функции) зачем прилогать архив с проектом смешно же.. и так все видно. У вас же все сложнее, представьте мы должны будем скопипастить да еще и длл создать, и все такое поймите нам то это зачем...
(Мы качаем Архив распаковываем открываем проект компилим видим или не видим ошибку и отписываемся Вам...)

PS Не люблю футбол.
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Пред.След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Рейтинг@Mail.ru