Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

импорт библиотеки скомпилиной под 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]

А отладчик на что ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо