Mon nouveau site: Black-security.org
 
Bonjour 38.107.179.216, nous sommes le 06 février 2012, il est 10:29
     
 
   
Mode de Comptabilité - Version précedente de World-of-Crack.fr
il y à 65 membres connectés
Chargement en cours...
Navigation
 
Cours (92 articles)
 
Boîte à outils
License Creative Commons CC0 (zero)

Créer une DLL et l'importé

Note de l'article : 1 1 1 0 0
Cette article a été consulté 7167 fois.

Nous allons créer un simple DLL en C++ qui affiche un message dans une boîte de dialogue (avec la fonction MessageBoxA) puis nous allons l'importer dans un projet en C#.

Le but étant de découvrir l'utilisation d'une DLL et comment en utiliser une dans un projet !

Création de la DLL avec Code Blocks :

Créer un nouveau projet "Dynamic Link Library" que vous nommerez "Dll export".

Résultat : 2 fichiers vont être generé :

  1. Main.cpp
  2. Main.h

Contenu de Main.cpp :

#include "main.h"

// a sample exported function
void DLL_EXPORT SomeFunction(const LPCSTR sometext)
{
    MessageBoxA(0, sometext, "DLL Message", MB_OK | MB_ICONINFORMATION);
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    switch (fdwReason)
    {
        case DLL_PROCESS_ATTACH:
            // attach to process
            // return FALSE to fail DLL load
            break;

        case DLL_PROCESS_DETACH:
            // detach from process
            break;

        case DLL_THREAD_ATTACH:
            // attach to thread
            break;

        case DLL_THREAD_DETACH:
            // detach from thread
            break;
    }
    return TRUE; // succesful
}

 

Contenu de Main.h :

#ifndef __MAIN_H__
#define __MAIN_H__

#include

/*  To use this exported function of dll, include this header
 *  in your project.
 */

#ifdef BUILD_DLL
    #define DLL_EXPORT __declspec(dllexport)
#else
    #define DLL_EXPORT __declspec(dllimport)
#endif


#ifdef __cplusplus
extern "C"
{
#endif

void DLL_EXPORT SomeFunction(const LPCSTR sometext);

#ifdef __cplusplus
}
#endif

#endif // __MAIN_H__

 

Le code source contient déja la fonction "SomeFunction()" qui affiche juste un message dans une boîte de dialogue :

void DLL_EXPORT SomeFunction(const LPCSTR sometext)
{
    MessageBoxA(0, sometext, "DLL Message", MB_OK | MB_ICONINFORMATION);
}

Donc : Pour afficher un message en utilisant cette DLL, il suffit juste d'appeler la fonction SomeFunction() et d'indiquer le contenu (const LPCSTR sometext)!

Vous pouvez maintenant compiler la DLL ! et la garder sous la main pour l'importation !

 


Importation de la DLL sous Visual C# Express Edition

Créer un nouveau projet "Console" avec Visual C# Express Edition, que vous nommerez "Dll Import".

Il est nécessaire d'ajouter la réference "System.Runtime.InteropServices" pour pouvoir importer une Dll.

capture_vcc_import

 

Maintenant taper ce code dans le nouveau projet C# mais ne compiler pas !

 Capture vcc

 

Avant de compiler il faut copier la DLL conçu dans le dossier "release" du projet "Import DLL", comme ceci :

 capture_dir_dll

 

Maintenant compiler le programme "ImportDLL", et normalement un message va s'afficher, il provient de la fonction "MessageBoxA" de la DLL.




Article écrit par Clint mourlevat le 03/03/2010, sous license License Creative Commons CC0 (zero)
Signature de l'auteur : « trop de paroles noient la vérité »