![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
And_ |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Приветствую.
Помогите решить следующую проблему. Хочу использовать нейросеть из нейропакета NeuroShell2 в проекте Delphi. Для этого существуют 3 функции, которые содержаться в NS2-32.dll Из help-а нейрошела:
Вот мой код, из которого пытаюсь вызвать функцию OpenNet.
Код возврата у меня всегда -65495. DEF-файл по указанному пути присутствует. Посмотрите, не нахомутал ли я чего с указателями? |
||||||
|
|||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
нахомутал. pDefPath := @DefPath; неверно
Верно так pDefPath := pointer(DefPath); Добавлено через 3 минуты и 42 секунды и конвенцию pascal укажи -------------------- Обижено школьников: 8 |
|||
|
||||
And_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
||||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Добавлено через 2 минуты и 42 секунды и вместо этого pDefPath: ^string; это: pDefPath: PChar; Это сообщение отредактировал(а) bems - 18.3.2009, 20:01 -------------------- Обижено школьников: 8 |
|||
|
||||
And_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Поправил, ничего не изменилось. Функция возвращает -65495
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
и обертка написана так, что даже когда візов функции из длл пройдет нормально, ее результаты не выдут за пределы обертки
Переделай хотя бы так
Добавлено через 4 минуты и 44 секунды дельфи случайно не 2009? -------------------- Обижено школьников: 8 |
|||
|
||||
And_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
да, 2009
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
тогда все свои string попробуй поменять на AnsiString
Добавлено через 1 минуту и 36 секунд ну и до кучи pDefPath: PChar; меняй на pDefPath: PAnsiChar; -------------------- Обижено школьников: 8 |
|||
|
||||
And_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Заменил. Результат тот же ((
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
гммм
давай сюда свою длл -------------------- Обижено школьников: 8 |
|||
|
||||
And_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Вот.
Там длл, русский хэлп, и som.def - файл с нейросетью. Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
а какие правильный значения n_In, n_Out?
-------------------- Обижено школьников: 8 |
|||
|
||||
And_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Функция должна записать в эти переменные такие значения: n_In=16, n_Out=15.
Эти значения берутся из прочитанного .def файла. Это сообщение отредактировал(а) And_ - 18.3.2009, 21:28 |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Посмотрел я хелп и понял - оно достаточно древнее чтобы 32-битный код был вновинку. Вопервых эта функция (несмотря на то, что там в хелпе) явно не pascal. Вроде бы stdcall, хотя не уверен. Так она хотя бы работае. Второе - она рабртает с 16-битными целыми (то есть прототип который они дают в хелпе остался от 16-битной версии длл-ки)
Короче правильное решение здесь - поискать чего-нибудь посвежее, и с более тщательной докумеентацией. А не "правильное" решение (решение "шоб работало"), вот оно:
-------------------- Обижено школьников: 8 |
|||
|
||||
And_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 5.7.2007 Репутация: нет Всего: нет |
Да, вот теперь ноль возвращает.
Спасибо, земляк, за то что времени не пожалел. )) Мне, правда, непонятны некоторые танцы с бубном - сам бы не сделал, естественно. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |