Rumah tutorial komputer pengetahuan komputer Kaedah pelaksanaan VC untuk menulis DLL dipanggil oleh JAVA

Kaedah pelaksanaan VC untuk menulis DLL dipanggil oleh JAVA

Jan 22, 2024 pm 04:57 PM

Kaedah pelaksanaan VC untuk menulis DLL dipanggil oleh JAVA

Cara menggunakan VC untuk menulis DLL untuk JAVA untuk memanggil

}(2) Susun fail java, dan kemudian susun untuk menjana fail pengepala (untuk kegunaan vc) javac GB2PY.java //Kompil untuk menjana kelas(3) Cipta folder com/bw/gb2py dalam folder semasa, dan tambah GB2PY.class Masukkan ke dalam folder, kembali ke folder semasa, dan panggil arahan javah untuk menjana fail pengepala. javah com.bw.gb2py.GB2PY //Janakan fail pengepala, nama fail ialah com_bw_gb2py_GB2PY.h Ambil perhatian bahawa kandungan dalam fail pengepala tidak boleh ditukar, jika tidak, dll yang dihasilkan tidak boleh digunakan (4) Cipta Win32 dll. projek bernama GB2PY dalam VC, Salin com_bw_gb2py_GB2PY.h ke direktori projek dan tambahkannya pada projek. Kemudian salin %JAVA_HOME%/include/jni.h dan %JAVA_HOME%/include/win32/jni_md.h ke direktori projek dan tambahkannya pada projek. (5) Laksanakan kaedah yang diisytiharkan dalam com_bw_gb2py_GB2PY.h: Java_com_bw_gb2py_GB2PY_GetPY. Beri perhatian kepada penukaran rentetan java dan char dalam c. Rentetan Java dikodkan dalam unicode (double-bait), manakala char ialah single-bait. int (*GetPY)(char* szGBString,PY &oPY);JNIEXPORT jstring JNICALL Java_com_bw_gb2py_GB2PY_GetPY

(JNIEnv * env, jclass, nama jstring){static HMODULE hModle = LoadLibrary("PYconvert.dll"); //Dll pihak ketiga

GetPY = (LPFUN)GetProcAddress(hModle,"GBToPY");int len;char charName[128];

char charPY[512];

len = env->GetStringLength(name) * 2 + 1; //Tukar panjang dua bait kepada panjang bait tunggal, tambah 1 untuk menambah penamat

memset(charName, 0, len);

const wchar_t * w_buffer = env->GetStringChars(nama, 0);

int wlen = wcslen(w_buffer);

len = WideCharToMultiByte(CP_ACP, 0, w_buffer, wcslen(w_buffer) + 1, charName, len, NULL, NULL);

env->ReleaseStringChars(name, w_buffer); //Kod di atas menyalin kandungan nama rentetan java ke char array charName... //Tinggalkan beberapa kod fungsi dan tukar aksara Cina kepada pinyin dengan memanggil dll pihak ketiga function , disimpan dalam tatasusunan charPY int slen = strlen(charPY);

jchar * penimbal = jchar[slen] baharu;

len = MultiByteToWideChar(CP_ACP, 0, charPY, strlen(charPY), buffer, slen);

jika (len > 0 & len

buffer[len] = 0; //Kod di atas menukar rentetan jenis char kepada rentetan jenis jchar jstring js = env->NewString(buffer, len);

delete [] buffer; return js;} (6) Susun dan jana fail dll, yang boleh dipanggil dalam java (anda perlu menggunakan kelas yang dihasilkan dalam langkah kedua)! :)

Bagaimana untuk menulis fail DLL untuk fail EXE yang ditulis oleh VC dan biarkan EXE ini memanggil DLL

Maksud anda bagaimana untuk menulis dll? , atau bagaimana untuk memanggil dll yang anda tulis?

Bagaimana untuk menulis dll:vc++6.0? Semasa membuat projek baharu, anda biasanya memilih mana-mana yang berikut:

MFC AppWizard[dll] boleh menggunakan perpustakaan pautan dinamik rangka kerja MFC

Win32 Dynamic-link Library window32-bit standard pustaka dinamik

Kemudian pilih rangka kerja yang anda perlukan, dan kemudian lengkapkan, dll asas sudah sedia.

Jika anda mempunyai vs2003 dan ke atas (vs2010 belum digunakan, jadi saya tidak akan menyebutnya), buat yang baharu

Terdapat dua jenis yang biasa digunakan dalam kejuruteraan:

MFC->MFC Dll

Win32->Mana-mana satu->Pilih pilihan Dll dalam kotak dialog pop timbul

Pilihan lain bergantung pada keperluan anda. Kemudian ia selesai, dan dll asas sudah sedia.

Panggil dll yang anda tulis: Gunakan LoadLibrary("xxx.dll");

di mana anda perlu memanggilnya

xxx.dll ialah dll yang anda tulis, maka jika anda menulisnya dalam xxx.dll

Untuk antara muka, anda boleh menggunakan kaedah berikut untuk memanggil kaedah dalam dll:

1. Sertakan fail pengepala antara muka dll dalam projek exe anda Sebagai contoh, fungsi antara muka adalah tidak sah FunName(int a);

2. typedef void(*Func)(int); //Tentukan antara muka

3 Gunakan di mana perlu:

........................

HMOUDLE hMyDll = LoadLibrary("xxx.dll");

jika (hMyDll != NULL)

{

Func *pDllFun=(Func *)::GetProcAddress(hMyDll,"FunName");//FunName ialah fungsi antara muka dalam Dll anda

jika (pDllFun != NULL)

{

pDllFun(1); //Fungsi panggilan dalam Dll

}

}

4. Nyahpasang Dll apabila ia tidak diperlukan lagi. FreeLibrary(hMyDll);

////////////////////////////////////////////////////////////////////// /// /////

Adakah Dll anda telah dijana dalam direktori di mana exe berada?

Atas ialah kandungan terperinci Kaedah pelaksanaan VC untuk menulis DLL dipanggil oleh JAVA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ketahui Cara Memperbaiki Amaran Kesihatan Drive dalam Tetapan Windows Ketahui Cara Memperbaiki Amaran Kesihatan Drive dalam Tetapan Windows Mar 19, 2025 am 11:10 AM

Apakah peringatan kesihatan pemacu dalam tetapan Windows dan apa yang perlu anda lakukan apabila anda menerima amaran cakera? Baca tutorial Php.CN ini untuk mendapatkan arahan langkah demi langkah untuk mengatasi keadaan ini.

Bagaimana saya mengedit pendaftaran? (Amaran: Gunakan dengan berhati -hati!) Bagaimana saya mengedit pendaftaran? (Amaran: Gunakan dengan berhati -hati!) Mar 21, 2025 pm 07:46 PM

Artikel membincangkan penyuntingan Windows Registry, Langkah berjaga -jaga, kaedah sandaran, dan isu -isu yang berpotensi dari suntingan yang salah. Isu utama: Risiko ketidakstabilan sistem dan kehilangan data dari perubahan yang tidak wajar.

Bagaimana saya menguruskan perkhidmatan di Windows? Bagaimana saya menguruskan perkhidmatan di Windows? Mar 21, 2025 pm 07:52 PM

Artikel membincangkan menguruskan perkhidmatan Windows untuk kesihatan sistem, termasuk permulaan, berhenti, memulakan semula perkhidmatan, dan amalan terbaik untuk kestabilan.

Bagaimana saya menggunakan editor dasar kumpulan (gpEdit.msc)? Bagaimana saya menggunakan editor dasar kumpulan (gpEdit.msc)? Mar 21, 2025 pm 07:48 PM

Artikel ini menerangkan cara menggunakan editor dasar kumpulan (gpEdit.msc) di Windows untuk mengurus tetapan sistem, menonjolkan konfigurasi umum dan kaedah penyelesaian masalah. Ia menyatakan bahawa gpedit.msc tidak tersedia di edisi rumah windows, mencadangkan

Masalah Windows Metadata dan Internet: Bagaimana untuk memperbaikinya? Masalah Windows Metadata dan Internet: Bagaimana untuk memperbaikinya? Apr 02, 2025 pm 03:57 PM

Anda mungkin melihat "Sambungan ke Metadata Windows dan Perkhidmatan Internet (WMIS) tidak dapat ditubuhkan." Ralat pada Penonton Acara. Siaran ini dari Php.cn memperkenalkan cara menghapuskan masalah Windows Metadata dan Internet.

Bagaimana saya menukar aplikasi lalai untuk jenis fail? Bagaimana saya menukar aplikasi lalai untuk jenis fail? Mar 21, 2025 pm 07:48 PM

Artikel membincangkan perubahan aplikasi lalai untuk jenis fail pada Windows, termasuk perubahan semula dan perubahan pukal. Isu utama: Tiada pilihan perubahan pukal terbina dalam.

Bagaimana untuk memperbaiki ralat awan wap? Cuba kaedah ini Bagaimana untuk memperbaiki ralat awan wap? Cuba kaedah ini Apr 04, 2025 am 01:51 AM

Kesalahan awan stim boleh disebabkan oleh banyak sebab. Untuk bermain permainan dengan lancar, anda perlu mengambil beberapa langkah untuk mengeluarkan ralat ini sebelum anda melancarkan permainan. Perisian Php.CN memperkenalkan beberapa cara terbaik serta maklumat yang lebih berguna dalam siaran ini.

Cara menyelesaikan masalah kemas kini KB5035942 - Sistem yang terhempas Cara menyelesaikan masalah kemas kini KB5035942 - Sistem yang terhempas Apr 02, 2025 pm 04:16 PM

Isu Kemas Kini KB5035942 - Sistem terhempas biasanya berlaku kepada pengguna. Orang yang ditimbulkan berharap dapat mencari jalan keluar dari jenis masalah, seperti sistem terhempas, pemasangan, atau masalah bunyi. Menyasarkan situasi ini, jawatan ini diterbitkan oleh Php.CN Wil

See all articles