Datakent Ana Sayfa
Anasayfa Anasayfa > Diğer bölümler > C# & ASP.NET
  Aktif Konular Aktif Konular RSS: JAVA ile native kullanmak
  Yardım Yardım  Hızlı Ara   Kayıt Ol Kayıt Ol  Giriş Giriş

JAVA ile native kullanmak

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
aziz.alkurt Açılır Menü Göster
Admin Group
Admin Group
Simge

Kayıt Tarihi: 27.Ocak.2012
Bulundugu Yer: FETHİYE
Online: Sitede Değil
Gönderilenler: 26
  Alıntı aziz.alkurt Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: JAVA ile native kullanmak
    Gönderim Zamanı: 22.Subat.2013 Saat 17:38
Visual Studio için
C++ boş "test" adlı bir proje oluşturalım. İçerisine "test.cpp" adında bir dosya açalım.
Projeye sağ tıklayıp properties>C\C++>General>Additional include Directories kısmına
(java programlama için JDK kurulmuş olması gerekir.) 
"C:\Program Files (x86)\Java\jdk1.6.0_38\include" ve
"C:\Program Files (x86)\Java\jdk1.6.0_38\include\win32" eklediğimiz zaman

"test.cpp" dosyası içersinde #include "jni.h" yapabiliriz.

Birde "properties>C\C++>Code Generation" bölümünde Runtime Library kısmını "Multi Thread/MT" yaparsanız, oluşturduğunuz dll execude yapılırken C++ 2010 gibi kütüphanelere ihtiyaç duymaz.

"test.cpp" kodu için
-----------------------------------------------------------------------------------------
#include "jni.h"
#include <string.h>
extern "C"
{
    JNIEXPORT jbyteArray Java_datakent_test_getStringBytes(JNIEnv *env, jclass clazz,jstring sx)
    {
             const char *sxx= env->GetStringUTFChars(sx, NULL);
             jbyteArray result=env->NewByteArray(strlen(sxx));
             env->SetByteArrayRegion( result, 0,strlen(sxx), (const jbyte*)sxx);
             return result;
    }
}
-----------------------------------------------------------------------------------------

kodu derleyip d:/test.dll yaptık

java tarafı
-----------------------------------------------------------------------------------------
class datakent.test
{
      static native byte[] getStringBytes(String sx);
      public static void main(String []xx)
      {
                  System.load("d:/test.dll");
                  byte []cc=getStringBytes("Hello World!");
                 for(byte c : cc)
                      System.out.print("%02X",c);
      }
}
-----------------------------------------------------------------------------------------

Yukarı Dön
turknetyazilim Açılır Menü Göster
Moderator Group
Moderator Group
Simge

Kayıt Tarihi: 18.Ocak.2008
Bulundugu Yer: Balıkesir
Online: Sitede Değil
Gönderilenler: 214
  Alıntı turknetyazilim Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 24.Subat.2013 Saat 02:02
Eline sağlık...
Yukarı Dön
aziz.alkurt Açılır Menü Göster
Admin Group
Admin Group
Simge

Kayıt Tarihi: 27.Ocak.2012
Bulundugu Yer: FETHİYE
Online: Sitede Değil
Gönderilenler: 26
  Alıntı aziz.alkurt Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 24.Subat.2013 Saat 06:26
Rica ederim. Faydalı olmabilmişsem ne mutlu bana
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Menü Göster



Bu Sayfa 0,570 Saniyede Yüklendi. [power by : WebWiz]