GIWS (программное обеспечение) - GIWS (software)

GIWS это генератор оболочки предназначен для упрощения вызова Ява от C или C ++ путем автоматической генерации необходимых JNI код.

GIWS выпущен под CeCILL лицензия.

пример

Следующий класс Java выполняет простые вычисления.

пакет basic_example;импорт java.lang.Math;общественный класс MyComplexClass{	общественный MyComplexClass(){		// конструктор	}	общественный длинная myVeryComplexComputation(двойной а, двойной б){		вернуть Математика.круглый(Математика.потому что(а)+Математика.грех(б)*9);	}	}

GIWS дает возможность вызывать его из C ++.

#включают <iostream>#включают "basic_example.hxx"#включают <jni.h>JavaVM* create_vm() {	JavaVM* jvm;	JNIEnv* env;	JavaVMInitArgs аргументы;	JavaVMOption опции[2];	аргументы.версия = JNI_VERSION_1_4;	аргументы.nOptions = 2;	опции[0].optionString = const_cast<char*>("-Djava.class.path =.");	опции[1].optionString = const_cast<char*>("-Xcheck: jni");	аргументы.опции = опции;	аргументы.ignoreUnrecognized = JNI_FALSE;	JNI_CreateJavaVM(&jvm, (пустота **)&env, &аргументы);	вернуть jvm;}с помощью пространство имен basic_example;с помощью пространство имен стандартное;int основной(){  	JavaVM* jvm = create_vm();	MyComplexClass *testOfMyClass = новый MyComplexClass(jvm);	cout << «Мое вычисление:»  << testOfMyClass->myVeryComplexComputation(1.2,80) << конец;	вернуть 0;	}

Для создания привязки GIWS использует объявление XML. GIWS сгенерирует код JNI для вызова объекта Java.

<пакет имя ="базовый_пример">  <объект имя =«MyComplexClass»>        <метод имя ="myVeryComplexComputation" returnType ="длинная">          <параметр type ="двойной" имя ="а" />          <параметр type ="двойной" имя ="б" />        </method>  </object></package>

Смотрите также

  • SWIG позволяет вызывать C или C ++ с языков более высокого уровня

внешние ссылки