Форум программистов, компьютерный форум CyberForum.ru

Интеграция кода c++ в java - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помощь с фиксом ошибок http://www.cyberforum.ru/cpp-beginners/thread866188.html
Код: // ConsoleApplication2.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <stdio.h> #define OS_TYPE 0xF0 //0xF0 - Windows, 0x0F - Linux #if OS_TYPE & 0xF0 // Windows
C++ Как контролировать правильность ввода? В переменные типов unsigned и double нужно записать численное значение. Какие есть способы контроля ввода для избежания ввода символов, слов и строк при этом? http://www.cyberforum.ru/cpp-beginners/thread866178.html
Поиск из считываемого файла C++
# include <iostream> #define N 100 using namespace std; struct avia { char surname; char initials; // group char city ; // name int number; // price
Сортировать из считываемого файла C++
Как отсортировать из считываемого файла? # include <iostream> #define N 100 using namespace std; struct avia { char surname; char initials; // group char city ; // name
C++ Оформить в виде функции на С/С++ решение задачи http://www.cyberforum.ru/cpp-beginners/thread866166.html
Помогите пожалуйста
C++ [C++ Error] Unit1.cpp(29): E2451 Undefined symbol 'result' //-------------------------------------------------------------------------- #include <iostream.h> #include <conio.h> #pragma hdrstop //--------------------------------------------------------------------------- int multiply(int,int); void showResult (int); int main (int argc, char** argv) { подробнее

Показать сообщение отдельно
Why so seriouS
44 / 44 / 1
Регистрация: 12.03.2013
Сообщений: 167

Интеграция кода c++ в java - C++

15.05.2013, 18:55. Просмотров 1845. Ответов 3
Метки (Все метки)

Вот решил переписать пример с одной книги где показано как в код java вставить код c++. Но почему-то много ошибок, не подскажете почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include "A.h"
#include "jni.h"
 
JNIEXPORT void JNICALL Java_A_show(JNIEnv *env, jobject obj)
{
    jclass cls;
    jfieldID fid;
    jint i;
    cls = (*env)->GetObjectClass(env,obj);
    fid = (*env)->GetFieldID(env,cls,"i","I");
 
    i = (*env)->GetIntField(env,obj,fid);
    std::cout<<"i = "<<i;
    (*env)->SetIntField(env,obj,fid,2*i);
    std::cout<<std::endl<<"i = "<<i;
}
A.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class A */
 
#ifndef _Included_A
#define _Included_A
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     A
 * Method:    show
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_A_show
  (JNIEnv *, jobject);
 
#ifdef __cplusplus
}
#endif
#endif
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class A
{
    int i;
    public static void main(String [] args)
    {
        A a = new A();
        a.i = 10;
        a.show();
    }
    public native void show();
 
    static{
        System.loadLibrary("A");
    }
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
------ Построение начато: проект: temp, Конфигурация: Debug Win32 ------
  main.cpp
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(10): error C2819: тип "JNIEnv_" не имеет перегруженный "operator ->"
          c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\jni.h(782): см. объявление "JNIEnv_"
          возможно, имеется в виду "."
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(10): error C2232: ->JNIEnv_::GetObjectClass: левый операнд имеет тип "struct", используйте "."
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(10): error C2065: env: необъявленный идентификатор
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(11): error C2819: тип "JNIEnv_" не имеет перегруженный "operator ->"
          c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\jni.h(782): см. объявление "JNIEnv_"
          возможно, имеется в виду "."
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(11): error C2232: ->JNIEnv_::GetFieldID: левый операнд имеет тип "struct", используйте "."
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(13): error C2819: тип "JNIEnv_" не имеет перегруженный "operator ->"
          c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\jni.h(782): см. объявление "JNIEnv_"
          возможно, имеется в виду "."
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(13): error C2232: ->JNIEnv_::GetIntField: левый операнд имеет тип "struct", используйте "."
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(15): error C2819: тип "JNIEnv_" не имеет перегруженный "operator ->"
          c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\jni.h(782): см. объявление "JNIEnv_"
          возможно, имеется в виду "."
c:\documents and settings\admin\мои документы\visual studio 2010\projects\temp\temp\main.cpp(15): error C2232: ->JNIEnv_::SetIntField: левый операнд имеет тип "struct", используйте "."
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru