Maison tutoriels informatiques connaissances en informatique Méthode d'implémentation VC pour écrire une DLL appelée par JAVA

Méthode d'implémentation VC pour écrire une DLL appelée par JAVA

Jan 22, 2024 pm 04:57 PM

Méthode dimplémentation VC pour écrire une DLL appelée par JAVA

Comment utiliser VC pour écrire une DLL que JAVA doit appeler

}(2) Compilez le fichier java, puis compilez et générez le fichier d'en-tête (pour une utilisation vc) javac GB2PY.java //Compilez et générez la classe (3) Créez le dossier com/bw/gb2py dans le dossier actuel, et ajoutez GB2PY.class Mettez-le dans le dossier, revenez au dossier actuel et appelez la commande javah pour générer le fichier d'en-tête. javah com.bw.gb2py.GB2PY //Générer un fichier d'en-tête, le nom du fichier est com_bw_gb2py_GB2PY.h Notez que le contenu du fichier d'en-tête ne peut pas être modifié, sinon la DLL générée ne peut pas être utilisée (4) Créez une nouvelle DLL Win32. projet nommé GB2PY dans VC, copiez com_bw_gb2py_GB2PY.h dans le répertoire du projet et ajoutez-le au projet. Copiez ensuite %JAVA_HOME%/include/jni.h et %JAVA_HOME%/include/win32/jni_md.h dans le répertoire du projet et ajoutez-le au projet. (5) Implémentez la méthode déclarée dans com_bw_gb2py_GB2PY.h : Java_com_bw_gb2py_GB2PY_GetPY. Faites attention à la conversion de la chaîne Java et du caractère en c. Les chaînes de Java sont codées en Unicode (double octet), tandis que char est codé sur un seul octet. int (*GetPY)(char* szGBString,PY &oPY);JNIEXPORT jstring JNICALL Java_com_bw_gb2py_GB2PY_GetPY

(JNIEnv * env, jclass, jstring name){static HMODULE hModle = LoadLibrary("PYconvert.dll" //Dll tierce

);

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

char charPY[512];

len = env->GetStringLength(name) * 2 + 1; //Convertissez la longueur sur deux octets en longueur sur un octet, ajoutez 1 pour ajouter le terminateur

memset(charName, 0, len);

const wchar_t * w_buffer = env->GetStringChars(name, 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); //Le code ci-dessus copie le contenu du nom de la chaîne Java dans le tableau char charName... //Omettez certains codes de fonction et convertissez les caractères chinois en pinyin en appelant une DLL tierce. fonction, stockée dans le tableau charPY int slen = strlen(charPY);

jchar * buffer = nouveau jchar[slen];

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

si (len > 0 & len

buffer[len] = 0; //Le code ci-dessus convertit la chaîne de type char en chaîne de type jchar jstring js = env->NewString(buffer, len);

delete [] buffer; return js;} (6) Compilez et générez un fichier dll, qui peut être appelé en java (vous devez utiliser la classe générée dans la deuxième étape) ! :)

Comment écrire un fichier DLL pour un fichier EXE écrit par VC et laisser cet EXE appeler la DLL

Vous voulez dire comment écrire une DLL ? , ou comment appeler la DLL que vous avez écrite ?

Comment écrire dll:vc++6.0 ? Lors de la création d'un nouveau projet, vous choisissez généralement l'une des options suivantes :

MFC AppWizard[dll] peut utiliser la bibliothèque de liens dynamiques du framework MFC

Fenêtre de la bibliothèque de liens dynamiques Win32Bibliothèque dynamique standard 32 bits

Sélectionnez ensuite le framework dont vous avez besoin, puis complétez, la dll de base est prête.

Si vous avez vs2003 et supérieur (vs2010 n'a pas été utilisé, donc je n'en parlerai pas), créez-en un nouveau

Il existe deux types couramment utilisés en ingénierie :

MFC -> MFC Dll

Win32->Tout->Sélectionnez l'option Dll dans la boîte de dialogue contextuelle

Les autres options dépendent de vos besoins. Ensuite, c'est fait et la DLL de base est prête.

Appelez la DLL que vous avez écrite : utilisez LoadLibrary("xxx.dll");

là où vous devez l'appeler

xxx.dll est la DLL que vous avez écrite, alors si vous l'avez écrite dans xxx.dll

Pour l'interface, vous pouvez utiliser la méthode suivante pour appeler la méthode dans la dll :

1. Incluez le fichier d'en-tête d'interface de la dll dans votre projet exe. Par exemple, la fonction d'interface est void FunName(int a);

2. typedef void(*Func)(int); //Définir l'interface

3. Utiliser là où c'est nécessaire :

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

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

if (hMyDll != NULL)

{

Func *pDllFun=(Func *)::GetProcAddress(hMyDll,"FunName");//FunName est la fonction d'interface dans votre Dll

if (pDllFun != NULL)

{

pDllFun(1); //Appeler la fonction dans Dll

}

}

4. Désinstallez la DLL lorsqu'elle n'est plus nécessaire. Bibliothèque gratuite (hMyDll);

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

Votre Dll a-t-elle été générée dans le répertoire où se trouve l'exe ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Découvrez comment réparer l'avertissement de santé dans les paramètres Windows Découvrez comment réparer l'avertissement de santé dans les paramètres Windows Mar 19, 2025 am 11:10 AM

Que signifie l'avertissement de santé des motivations dans les paramètres Windows et que devez-vous faire lorsque vous recevez l'avertissement de disque? Lisez ce tutoriel Php.CN pour obtenir des instructions étape par étape pour faire face à cette situation.

Comment modifier le registre? (Avertissement: utilisez avec prudence!) Comment modifier le registre? (Avertissement: utilisez avec prudence!) Mar 21, 2025 pm 07:46 PM

L'article traite de l'édition du registre Windows, des précautions, des méthodes de sauvegarde et des problèmes potentiels des modifications incorrectes. Problème principal: risques d'instabilité du système et de perte de données contre les modifications inappropriées.

Comment gérer les services dans Windows? Comment gérer les services dans Windows? Mar 21, 2025 pm 07:52 PM

L'article discute de la gestion des services Windows pour la santé du système, y compris le démarrage, l'arrêt, le redémarrage des services et les meilleures pratiques de stabilité.

Comment utiliser l'éditeur de stratégie de groupe (gpedit.msc)? Comment utiliser l'éditeur de stratégie de groupe (gpedit.msc)? Mar 21, 2025 pm 07:48 PM

L'article explique comment utiliser l'éditeur de stratégie de groupe (GPedit.msc) dans Windows pour gérer les paramètres du système, en survivant les configurations courantes et les méthodes de dépannage. Il note que gpedit.msc n'est pas disponible dans Windows Home Editions, suggérant

Metadata Windows et problèmes de services Internet: comment le résoudre? Metadata Windows et problèmes de services Internet: comment le résoudre? Apr 02, 2025 pm 03:57 PM

Vous pouvez voir que «une connexion aux métadonnées Windows et aux services Internet (WMIS) n'a pas pu être établie.» Erreur sur la visionneuse d'événements. Cet article de Php.cn présente comment supprimer le problème des métadonnées Windows et des services Internet.

Comment modifier l'application par défaut pour un type de fichier? Comment modifier l'application par défaut pour un type de fichier? Mar 21, 2025 pm 07:48 PM

L'article discute de la modification des applications par défaut pour les types de fichiers sous Windows, y compris le retour et les modifications en vrac. Problème principal: aucune option de changement de masse intégrée.

Comment réparer l'erreur de nuage de vapeur? Essayez ces méthodes Comment réparer l'erreur de nuage de vapeur? Essayez ces méthodes Apr 04, 2025 am 01:51 AM

L'erreur de nuage de vapeur peut être causée par de nombreuses raisons. Pour jouer à un jeu en douceur, vous devez prendre certaines mesures pour supprimer cette erreur avant de lancer le jeu. Le logiciel PHP.CN présente certaines façons ainsi que des informations plus utiles dans cet article.

Comment résoudre les problèmes de mise à jour KB5035942 - Système de crash Comment résoudre les problèmes de mise à jour KB5035942 - Système de crash Apr 02, 2025 pm 04:16 PM

KB5035942 MISE À JOUR LES PROBLÈMES - SYSTÈME D'ÉCRASSION PROBLÈME AUX UTILISATEURS. Les personnes infligées espèrent trouver un moyen de sortir du type de problèmes, comme le système de crash, l'installation ou les problèmes sonores. Ciblage de ces situations, cet article publié par Php.cn Wil

See all articles