


Méthode d'implé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'appelerxxx.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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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é.

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

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.

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.

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.

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
