Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
765 connectés 

  FORUM HardWare.fr
  Programmation
  C

  comment utiliser Allegro dans une DLL ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment utiliser Allegro dans une DLL ?

n°1905129
moimail007
Posté le 14-07-2009 à 23:29:26  profilanswer
 

Bonjour !
 
Je veux utiliser Allegro dans ma propre DLL. Je veux utiliser les fonctions  de «allegro.h » et «alfont.h» dans la procédure de ma DLL.
La procédure de ma DLL que j’appellerai  depuis une application VB2008 doit avoir pour paramètre d’entrées (Char*, int) et me retourner un (pointeur) Bitmap ou tableau d’entiers.
 
Je vous montre le test que j’ai fait avec DEV C++ et VB2008 , mais qui malheureusement ne fonctionne pas !  
ma DLL est compilée sans erreur sans warnings sous DEV C++. mais quand je fais l'appel de ma DLL depuis mon application VB2008 çà génère une erreur
 
 
dll.h

Code :
  1. #ifndef _DLL_H_
  2. #define _DLL_H_
  3. // entête des fonctions  
  4. __declspec (dllexport) int GetBitmap (char*, int);
  5. #endif // _DLL_H_


 
dllmain.c  

Code :
  1. #include "dll.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <allegro.h>
  5. #include <alfont.h>
  6. #include <winalleg.h>
  7. __declspec (dllexport) int GetBitmap (char *_ch , int _h){
  8.     BITMAP *bmp ;
  9.     ALFONT_FONT *user_font;
  10.    
  11.     int _w=0;
  12.     //format pour le codage du texte (ASCII, ascii normal)
  13.     set_uformat(U_ASCII);
  14.     allegro_init();//initialise allegro
  15.     alfont_init();//initialise la font
  16.     //Charge une police
  17.     user_font = alfont_load_font("times.ttf" );
  18.     // change la taille de police
  19.     alfont_set_font_size(user_font, _h);
  20.     //créé un bitmap
  21.     _w = alfont_text_length(user_font, _ch);
  22.     bmp=create_bitmap(_w,_h);
  23.     //initialise le bitmap a 0
  24.     clear_to_color(bmp,0);
  25.     //Déssine "_ch" a patir de la ppolice "user_font" ds le bitmap "bmp" avec la couleur "makecol(r, g, b)"
  26.     alfont_textprintf_ex(bmp, user_font, 0, 0, makecol(0, 255, 0), 0, _ch);
  27.     //libere la memoire
  28.     destroy_bitmap(bmp);
  29.     alfont_destroy_font(user_font);
  30.     alfont_exit();
  31.     allegro_exit();
  32.     return 1; 
  33. }   
  34. BOOL APIENTRY DllMain (HINSTANCE hInst,    // Library instance handle.  
  35.                        DWORD reason,       // Reason this function is being called.  
  36.                        LPVOID reserved)    // Not used.  
  37. {
  38.     switch (reason)
  39.     {
  40.       case DLL_PROCESS_ATTACH:
  41.         break;
  42.       case DLL_PROCESS_DETACH:
  43.         break;
  44.       case DLL_THREAD_ATTACH:
  45.         break;
  46.       case DLL_THREAD_DETACH:
  47.         break;
  48.     }
  49.     // Returns TRUE on success, FALSE on failure  
  50.     return TRUE;
  51. }


 
 
VB2008

Code :
  1. Module Module1
  2.     Public Declare Function GetBitmap Lib "d:\Ecriture_DLL.dll" (ByRef c As Char, ByVal h As Integer) As Integer
  3. End Module


Code :
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         Me.Text = GetBitmap("a", 10)
  3. End Sub


 
Merci d'avance !
 

mood
Publicité
Posté le 14-07-2009 à 23:29:26  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  comment utiliser Allegro dans une DLL ?

 

Sujets relatifs
Utiliser le débogeur de D7.Utiliser une recherche google dans une application
Variable pour utiliser le CodeName d'une feuilleErreur suite à la création d'une DLL
Projet d'application: quel langage utiliser ?utiliser les cookies d'autre site web !!
Soucis d'utilisation d'une DLL sous php avec objet COMUtiliser une API externe
comment utiliser une nouvelle bibliothèque (cygwin)Avoir une iframe sans utiliser de iframe
Plus de sujets relatifs à : comment utiliser Allegro dans une DLL ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR