C ++ код в приложении для iPhone - PullRequest
6 голосов
/ 29 июня 2009

Я пытаюсь использовать библиотеку C ++ (CLucene) из приложения Cocoa Touch для iPhone с использованием Xcode 3.1.3. Все работает нормально, когда я работаю в симуляторе iPhone, но все становится странным, когда я бегу на устройстве. Кажется, что указатели неправильно передаются из кода Objective-C ++ (мое приложение) в библиотеку C ++ (CLucene).

При отладке приложения на устройстве я могу наблюдать, как переменная const char * передается в качестве параметра для изменения функции C ++ с 0x12546c0 в Objective-C ++ на 0x4e в C ++. Поскольку 0x4e не указывает на допустимый const char *, код C ++ завершается неудачно. Этого не происходит при отладке в симуляторе.

Я компилирую библиотеку C ++ непосредственно в приложение, а не ссылки на статическую или динамическую библиотеку.

Любая помощь будет высоко ценится.

Ответы [ 2 ]

4 голосов
/ 29 июня 2009

Отключение «Compile for Thumb» в настройках сборки проекта решает проблему.

0 голосов
/ 29 июня 2009

Не должно быть проблем с использованием кода C ++ в приложении для iPhone (я делаю это все время).

Указатели должны передаваться как указатели без какой-либо интерпретации.
Вы уверены, что объект Objective-C ++ является 'const char *', а не каким-то другим типом, который преобразовывается (неправильно) в "const char *" на лету во время выполнения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...