![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: нет Всего: 1 |
Здраствуйте. Как обозначается тип String в JNI DLL? Вот ссылка: http://java.sun.com/j2se/1.5.0/docs/guide/...pes.html#wp9502 но здесь не все обозначения
В параметрах функции String ip так и должен быть или записуется по-другому? Это сообщение отредактировал(а) Sergio - 4.2.2007, 21:21 |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
||||
|
||||
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: нет Всего: 1 |
powerOn, не то
Это сообщение отредактировал(а) Sergio - 4.2.2007, 22:40 |
|||
|
||||
| Enflout |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 22.5.2004 Репутация: 1 Всего: 6 |
GetStringUTFChars
ReleaseStringUTFChars
Попробуй так: Сначала const char* ipc = env->GetStringUTFChars(ip, 0); А потом, в конце env->ReleaseStringUTFChars(ip, ipc); P.S. Возможно придется немного исправить программу. |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Sergio, что ты велосипед изобретаешь. Есть же утилита javah - даешь ей класс с объявленой native функцией, и она сам сгенерирует правильный h файл, с правильными типами.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
Не забывай только, что с троки у тебя будут в UTF-8. Сам jstring - вообще вроде дескрипторы в системной таблице JVM.
Да, кстати, глянь тут Enflout, у тебя та же ошибка, что и по ссылке выше. |
|||
|
||||
| Sergio |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 843 Регистрация: 28.7.2006 Где: Solar System-> Earth Репутация: нет Всего: 1 |
Всем спасибо. Получилось
|
|||
|
||||
| Enflout |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 22.5.2004 Репутация: 1 Всего: 6 |
А вот тут я не совсем согласен Цитата из книги Эккеля Thinking In Java, 2 ed.
По ссылке выше автор писал код на C, а автор этой темы пишет на C++, посмотрите хотя бы на цикл for. Так почему бы не использовать env->ReleaseStringUTFChars(jMsg, msg); ? СУВ |
|||
|
||||
| Любитель |
|
||||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
А ты проверь. Не знаю - у меня не компилится. В jni.h имеем лишь
То есть даже определение сей структуры от нас скрыто. Никаких методов у неё нет. Если мы подкинем компилеру формальное определение JNIEnv как
то сие скомпилится. Более того будет работать (за исключением создание/копирвоание JNIEnv - мы не знаем её размер), так как при вызове метода, яактически, неявно первым параметром идёт указатель на объект. Но во всей папке include из JDK я такого не нашёл Да и на java.sun.com/docs мы находим лишь определение глобальной функции, но не метода. |
||||
|
|||||
| Enflout |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 22.5.2004 Репутация: 1 Всего: 6 |
Стоп-стоп-стоп.
Я тут посмотрел свой jni.h (прилагается в конце поста). Все цитаты из него.
Это раз
Это два
Это три Так что структура имеет методы и даже в комментариях jni.h написан допустимый подход к написанию C++ программ. СУВ PS http://ifolder.ru/1065648 - jni.h |
||||||
|
|||||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
Enflout, версия JDK?
У меня сего нету. Если хочешь - могу куды-нибудь выложить свой jni.h. |
|||
|
||||
| Enflout |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 22.5.2004 Репутация: 1 Всего: 6 |
||||
|
||||
| Enflout |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 22.5.2004 Репутация: 1 Всего: 6 |
||||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
Наконец-таки пишу со своего компа
Enflout, мои извинения - я жестоко обманул Ещё раз сорри. |
|||
|
||||
| Enflout |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 22.5.2004 Репутация: 1 Всего: 6 |
||||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |