![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
импорт библиотеки скомпилиной под VS 6.0 [D7]
Антон.Киев © (2009-01-09 19:43:00)Доброго времени суток!
Проблема заключается в том, что в библиотечной функции которую я пытаюсь импортировать, один из входных параметров имеет тип std::string. Какой эквивалент задать ему в делфи? PChar не подошёл. Вобщем всё что не пробовал валит приложение после вызова этой функции. Спасибо за помощь.
KSergey (2009-01-11 21:19:00) [1]> Антон.Киев (11.01.09 20:49) [9]
> > у сишников и дельфистов одно на уме: кроме них ничего не
> > свете не бывает...
> Не понял к чему это )
К тому, что видел много раз сделанные в дельфи dll с торчащими наружу строками (обычными, дельфийскими), а то и вовсе компонентами.
Ну а тут, значится, и сишники такие же больные попались.
> Нет исходников есть только билды (
Тогда только прокси-dll поможет, как и говорилось выше.
Антон.Киев (2009-01-11 20:49:00) [2]
> у сишников и дельфистов одно на уме: кроме них ничего не
> свете не бывает...
Не понял к чему это )
> а модификация исходников на С++ возможна? как-то слабо верится,
> что такое может быть в сколь-нибудь распространенном продукте,
> хоят всякое бывает, конечно...
Нет исходников есть только билды (
KSergey (2009-01-11 11:18:00) [3]а модификация исходников на С++ возможна? как-то слабо верится, что такое может быть в сколь-нибудь распространенном продукте, хоят всякое бывает, конечно...
KSergey (2009-01-11 11:17:00) [4]у сишников и дельфистов одно на уме: кроме них ничего не свете не бывает...
Сергей М. (2009-01-09 22:18:00) [5]
> этот сишный string - это же объект с кучей функций
Заметь - CИшный объект.
Спрашивается, откуда в Делфи возьмутся сишные объекты?
> написать на сях dll в ней сделать импорт нужной функции,
> а экспортировать обёртку с нормальными входными параметрами
> типа char*. Вот
Вот !
Так и следует поступить.
Антон.Киев (2009-01-09 22:10:00) [6]Та не экспортирую я сишный. Ставил я PChar при импорте. Всё-равно валится приложение. Так вот этот сишный string - это же объект с кучей функций, я веду к тому, что это не просто массив чаров. Значит памяти он требует больше чем PChar. Ну и к тому же внутри импортируемой функции могут использоваться некоторые методы этого std::string. И если я туда отдам просто PChar запросто вылезет Access Violation. На пока я вижу только один вариант: написать на сях dll в ней сделать импорт нужной функции, а экспортировать обёртку с нормальными входными параметрами типа char*. Вот. Но думалось что есть вариант попроще.
Сергей М. (2009-01-09 22:01:00) [7]
> директивы ассемблера и стандартный Access Violation мне
> ничего не говорят
Это печально.
Пока они не заговорят, врял ли что-то путное получится.
> Какой тип использовать в Делфи?
Зачем же ты сишный string экспортируешь ?
Экспортируй указатель на char - ему в Делфи при импорте соответствует PChar
Антон.Киев (2009-01-09 21:27:00) [8]К сожалению директивы ассемблера и стандартный Access Violation мне ничего не говорят. Я думаю, что я неверно задаю тип параметра при импорте функции. В документации у него тип std:string. Какой тип использовать в Делфи?
Сергей М. (2009-01-09 20:58:00) [9]А отладчик на что ?
Сергей М. (2009-01-09 20:27:00) [10]А отладчик на что ?