Bonjour, je voyais que la section programmation ne bougeait pas beaucoup ces temps-ci, donc je me suis décider de partager avec vous quelques connaissances :
Dans ce tutoriel, je vais utiliser VC++ donc, pour un meilleur suivis du tutoriel, je vous conseille de l'use.
Bon, pour créer un nouveau projet :
VC++>Fichier>Nouveau Projet>Projet Win32>Suivant>Cochez sur 'DLL' et sur Projet Vide>Terminer.
Voilà on a crée notre projet vous verrez 4 fichier comme ceci :
Bon maintenant on va crée notre fichier source.
Clique Droit sur fichiers source>Ajouter>Nouvel élement>Fichier .cpp puis nommez le Main.cpp.
C'est là qu'on va mettre notre code :
Maitenant finis notre Main, on passe à la form, donc pour la créer:
Clique droit sur Fichier d'en-tête>Ajouter>Nouvel élément>UI>Windows Form nommez la Form ou ce que vous voulez.
Vous aurez un message de VS qui dit : Vous ajoutez un composant CLR ...
Vous cliquez sur Oui.
Si on ignore cette information on aura plutard quelque error non relatifs au code source, donc pour éviter ceci allez dans :
Projet>Propriété de 'nom de projet'>Propriété de configuration>Général>paramètre par défaut du projet>Prise en charge du common Langage Run> Vous modifiez Pas de prise en charge à Prise en charge du common Langage Run (/clr)
Tout d'abord, glissez 'Form1.cpp' dans les fichiers sources.
Collez ceci apres #include "Form1.h" Ou ça dépend du nom de votre form
Remplacez Debug par Release pour éviter les bug de MSVCR et MSVCP, puis lancez le débugger tout en ignorant les avertissements.
Voilà c'est tout pour aujourd'hui et à bientôt pour un nouveau tutoriel :D
Dans ce tutoriel, je vais utiliser VC++ donc, pour un meilleur suivis du tutoriel, je vous conseille de l'use.
Bon, pour créer un nouveau projet :
VC++>Fichier>Nouveau Projet>Projet Win32>Suivant>Cochez sur 'DLL' et sur Projet Vide>Terminer.
Voilà on a crée notre projet vous verrez 4 fichier comme ceci :
Bon maintenant on va crée notre fichier source.
Clique Droit sur fichiers source>Ajouter>Nouvel élement>Fichier .cpp puis nommez le Main.cpp.
C'est là qu'on va mettre notre code :
PHP:
#include <windows.h>
extern int Main(); // On informe notre IDE que la fonction Main est quelque part dans notre projet
void WINAPI MainThread( )
{
//Cette fonction va démarrer une fois la DLL injecté.//
Main(); //Ceci va charger notre form et l'afficher.
}
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpvReserved )
{
switch ( dwReason ) {
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hModule);
// On va créer le Thread de notre form dans l'application où on a injecté la DLL.//
if ( CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MainThread, NULL, 0, NULL) == NULL )
// Si notre Thread est crée
{
return FALSE;
}
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
Maitenant finis notre Main, on passe à la form, donc pour la créer:
Clique droit sur Fichier d'en-tête>Ajouter>Nouvel élément>UI>Windows Form nommez la Form ou ce que vous voulez.
Vous aurez un message de VS qui dit : Vous ajoutez un composant CLR ...
Vous cliquez sur Oui.
Si on ignore cette information on aura plutard quelque error non relatifs au code source, donc pour éviter ceci allez dans :
Projet>Propriété de 'nom de projet'>Propriété de configuration>Général>paramètre par défaut du projet>Prise en charge du common Langage Run> Vous modifiez Pas de prise en charge à Prise en charge du common Langage Run (/clr)
Tout d'abord, glissez 'Form1.cpp' dans les fichiers sources.
Collez ceci apres #include "Form1.h" Ou ça dépend du nom de votre form
PHP:
using namespace Tutoriel;
//Modifiez Tutoriel par le nom de votre projet
[STAThreadAttribute]
int Main()
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
//Crée votre Main et le lance.
Application::Run(gcnew Form1());
//Modifiez Form1 par le nom que vous avez donné à votre Form
return 0;
}
Remplacez Debug par Release pour éviter les bug de MSVCR et MSVCP, puis lancez le débugger tout en ignorant les avertissements.
Voilà c'est tout pour aujourd'hui et à bientôt pour un nouveau tutoriel :D
Last edited: