Articles of C ++

Что следует использовать в Android при портировании кода на C ++, написанном с помощью libsndfile?

Я переношу небольшой (<10 классов) проект на C ++ на Java. Проект управляет звуковыми файлами, а в C ++ это использует libsndfile . Код включает в себя такие вещи, как: const int channels = audioFileInfo.channels; … sf_readf_double( audioFile, inputBuffer, MAX_ECHO ); … sf_writef_double( outputAudioFile, &currentAudioBuffer[WINDOW_SIZE * channels], SEGMENTATION_LENGTH ); В Java, как лучше всего управлять […]

Продолжающиеся задачи, зависающие при использовании LimitedConcurrencyLevelTaskScheduler

Я работаю над использованием TPL в C # (.NET 4.0). Я создал пользовательский API для облегчения создания веб-запросов и загрузки содержимого (асинхронно, используя задачи продолжения). Эта часть работает нормально. Проблема, с которой я столкнулся, возникает, когда я пытаюсь использовать LimitedConcurrencyLevelTaskScheduler (найденный в Образцах для параллельного программирования и в документации MSDN для задач ) с отложенным […]

Собственная библиотека C ++ – кто должен освобождать память и как?

Это касается Android. Ситуация: Библиотеки C ++ и классы оболочки Java плюс собственные функции (JNI) для работы с классами C ++ из библиотеки. Если для обычного Java-кода нужен объект C ++, он создает соответствующий объект оболочки java, который создает объект C ++ через встроенную функцию и запоминает указатель на собственный объект в переменной «long». Во […]

Pthreads умирают посреди замка мьютекса

Я думал о следующем сценарии, когда работает pthread: pthread_mutex_lock(…); … // <- Thread dies here pthread_mutex_unlock(…); Другими словами, начинается pthread, в какой-то момент он блокирует мьютекс, и по какой-то причине он умирает до того, как он сможет вызвать соответствующую функцию разблокировки, либо потому, что другой поток убил ее, либо сама ОС (в этом случае андроид […]

Как вызвать Mono для Android-класса из приложения Android?

Я создал довольно простой Activity в Mono для Android-проекта: [Activity(Label = "AndroidApplication1", MainLauncher = true, Icon = "@drawable/icon")] public class Activity1 : Activity { private string value = "intitial"; [Export] public string GetString() { return value; } [Export] public void SetString(string newValue) { value = newValue; } } Эта деятельность должна служить лишь доказательством концепции, […]

JNI: вызывается метод GetStaticMethodID

Я пишу некоторый код, чтобы получить порожденный поток для вызова статического метода Java из C ++. Биты, которые вызывают метод, работают нормально, если они помещаются в собственный вызов с Java, но не из потока с прикрепленным JNIEnv. Я установил JavaVM * следующим образом: jint JNI_OnLoad(JavaVM* jvm, void* reserved) { LOGI("Setting Java Virtual Machine"); ThreadJNIEnvironment::javaVM = […]

Std :: ошибка компоновщика карты ndk r8c с APP_STL: = gnustl_static

У меня есть проблема, связанная с STL в моем родном приложении. Связывание завершается неудачей с помощью map :: operator [] и map :: insert, а также с другими функциями карты. My Application.mk: APP_STL := gnustl_static APP_CPPFLAGS := -fexceptions -frtti APP_CPPFLAGS += -g3 APP_CPPFLAGS += -DDEBUG APP_ABI := armeabi-v7a APP_PLATFORM:=android-14 NDK_TOOLCHAIN_VERSION:=4.6 Нативный код содержит два уровня […]

Я получил ошибку соответствия _GLIBCXX_PERMIT_BACKWARD_HASH на android NDK при использовании hash_map

Я продолжаю переносить мой проект cocos2d-x с win32 на android. Я использую hash_map, и теперь это вызывает множество проблем. Я googled, что мне нужно включить его из разных источников на Android NDK и win32, вот так: #ifdef __GNUC__ #include <ext/hash_map> #else #include <hash_map> #endif Но все же, когда я компилирую на NDK r7b, я получил […]

Android NDK и C ++ STL

При компиляции моего C ++ для проекта iOS все идет отлично. Тем не менее, я сталкиваюсь с трудностями на Android. My Application.mk читает: APP_ABI := armeabi armeabi-v7a APP_PLATFORM := android-11 APP_STL := stlport_shared Все LOCAL_SRC_FILES определены. Когда я пытаюсь создать свой модуль, я получаю следующую ошибку компилятора: jni/Game.hpp: In member function 'const std::pair<pos, Obj*>* MyEnumerator::next()': […]

Как декодировать данные с помощью Zxing C ++

У меня возникли проблемы с использованием источников C ++ из проекта Zxing. Я загрузил весь проект с https://code.google.com/p/zxing/downloads/list и просто взял файлы cpp (core и cli). Я просто хочу иметь такой метод: decode(byte[] dataToDecode, int widthFrame, int heightFrame) Но я действительно не знаю, как это сделать (я действительно новичок в c ++ и проекте Zxing). […]