![]() |
|
|
![]()
|
|
| newsTester |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
Хочу из проекта написанного на Visual C++ сделать библиотеку для использования ее в проекте на Java. Делала пододобное на C++ Bilder.
Но возникают следующие проблемы: 1) При попытке перенести сделанный на основании имеющегося проекта lib файл в проект C++ Bilder получаю:
2) В отличии от C++ Bilder в Visual C++ нет библиотек (*.h файлов) необходимых для работы с JNI интерфейсом, а как сделать так чтобы Visual C++ взял их из той же JDK (где они лежат я знаю) я не пойму |
|||
|
||||
| dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Не совсем понятно что куда хотят перенести. Если переносят с vc++ на java, то причем тут с++ builder? Я всегда думал, что с++ и java это разные языки программирования, так что скомпилировать исходники от дного на другом не выйдет... obj файлы, на сколько я знаю, привязаны к компилятору и с ними кашу тоже не сваришь. Что не привязано к компилятору, так это *.cpp и *.dll файлы
Это сообщение отредактировал(а) dizzy1984 - 11.4.2008, 07:16 |
|||
|
||||
| newsTester |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
ну да, мутно написано ). Действительно, хочу перенести с vc++ на java, а с++ builder вспомнила в связи с тем что переход из с++ builder на java уже отработан.
речь идет именно о создании *.dll файла. При этом для меня есть два пути 1) перебросить проект vc++ на с++ builder, а дальше по накатанной дороге - тогда возникает первая проблема из предыдущего поста. 2) сразу в vc++ сформировать нужный *.dll файл - тогда возникает вторая проблема из предыдущего поста. вот.. |
||||
|
|||||
| dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
1) Вместо *.lib файла перенести *.cpp файлы и скомпилировать их?
2) Вот тут у меня будет заковыристый(е) вопрос(ы) : а JDK может работать с vc++, т.е если проблема только в видимости неких *.h файлов, то эт не сложно, просто укажи путь в директориях. В моей vs98 это Tools->Options->Directories->Include Files. Можно немного информации по тому, что требуется чтобы вызвать код на с++ из java? Просто, сами по себе *.h файлы мало полезны... |
|||
|
||||
| newsTester |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
По сути вызывается не код, а *.dll библиотека написанная в соответствии с требованиями JNI интерфейса. Ну а при написании этой библиотеки необходимо использовать специальные *.h файлы постовляемые вместе с JDK. |
|||
|
||||
| dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Ага. понятно.
Ну все то же самое. 1) Если через билдер - возьми *.cpp файлы и скомпилируй на нем, переносить lib бесполезно, билдер не поймет формат vc++. Если ты используешь какие-то библиотеки заточенные под vc++, то никак, т.к их врядли скомпилирует билдер. 2) Тут нужно почитать документацию и убедиться что *.h JDK файлы воспримутся компилятором vc++. В принципе для этого им нужно соответствовать стандарту и не содержать каких-то специальных ключевых слов используемых другими компиляторами. Можно просто проверить методом тыка. Как указать директорию файлов я написал. |
|||
|
||||
| newsTester |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
в конце-концов перебросила исходники на родной C++Builder.
Т.к. студия с заголовочными файлами для Java как то не стыкуется или я чего то не понимаю. Вобщем проблему сняли, спасибо |
|||
|
||||
| Kosoglaz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 1.2.2008 Репутация: нет Всего: нет |
Рад за Вас, тогда ЗЫ: ошибка из-за разных форматов .obj файлов, используемых Борландом и Мягким. OMF и COFF соответственно. Поженить их вроде не получается, так что варианты: 1) пересобрать проект на Билдере (что Вы и сделали 2) Найти импортёр из COFF в OMF 3) сделать на Вижуале длл-обёртку, которая через stdcall будет гнать данные в длл-на-Билдере, а та уже с JNI в Жаву. Но это крайний случай. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |