Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008
-
6 nov. 2004 à 22:42
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008
-
7 nov. 2004 à 21:01
Bonjour je suis en train de créer une dll pour une interface usb-série ftdi323c (qui est utilisée dans une interface DMX).
J'ai donc les pilotes de cette interface (une librairie FTD2XX.dll, une FTD2XX.lib et le fichier header FTD2XX.h).
Je dois réécrire une dll pour directement exécuter des fonctions sur cette interface.
Lorsque dans mon projet je lie le fichier .lib et que j'inclue mon fichier FTD2XX.h et bien à la compilation de la dll, qui ne comporte que deux fonctions qui n'appelement pas encore de fonctions du FTD2XX, j'ai les erreurs suivantes:
FTD2XX.h:49: error: parse error before "FT_HANDLE"
FTD2XX.h:49: warning: data definition has no type or storage class
FTD2XX.h:50: error: parse error before "FT_STATUS"
FTD2XX.h:50: warning: data definition has no type or storage class
FTD2XX.h:163: warning: parameter names (without types) in function declaration
FTD2XX.h:179: error: parse error before "FT_DEVICE"
....
Voici les premières ligne du fichier.h qui posent problème:
49 typedef PVOID FT_HANDLE;
50 typedef ULONG FT_STATUS;
... en gros ce sont tous les typedef,
Pourtant ce n'est pas moi qui ai écrit ce code et il est censé marcher puisque sur cette base il y a de nombreuses biblioteques qui ont été crées. J'ai un exemple qui me sert de point de départ, j'ai la source et le résultat qui a été compilé par quelqu'un d'autre, et quand moi je compile ce projet complet j'ai les même erreurs.
Je suis en C avec devcpp. J'ai essayer de créer la même en cpp puisque l'exemple est en cpp, et bien ça donne aussi les erreurs.
Merci d'avance pour l'aide, quelle qu'elle soit. Il doit pas y avoir un gros soucis, juste un petit problème de débutant, c'est ma première utilisation de DLL alors ....
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008 7 nov. 2004 à 11:35
Bon apparemment il connait les UCHAR et ULONG j'ai juste changé mon erreur d'include et ça a compilé, mais maintenant j'ai un autre problème:
Dans mon programme principal, je charge ma dll, là ça va, mais après je défini ma fonction, elle a l'air d'être bien définie, en tout cas y'a pas d'erreur, mais lors de son appel rien ne se passe.
case CM_OUVRIR_INTERFACE:
int hModDll; if((hModDll LoadLibrary(TEXT("Interfaces/OpenDMX-USB.dll"))) NULL) MessageBox(GetActiveWindow(),"Erreur lors du chargement de la DLL.","Erreur",0);
else{
MessageBox(GetActiveWindow(),"L'interface est bien connectée","C'est bon !",0);
}
typedef void (__cdecl* lpFunc1) (void);
lpFunc1 DMXHelloworld;
DMXHelloworld = (lpFunc1) GetProcAddress((HINSTANCE)hModDll, TEXT("Helloworld"));
break;
case CM_CHECK_INTERFACE:
(DMXHelloworld)():
break;
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008 7 nov. 2004 à 12:49
Oula j'ai fait n'importe quoi dans mon code encore une fois,
(DMXHelloworld)(): est en fait DMXHelloworld(); ...
J'ai un peu avancé, j'ai chargé la dll au début de mon programme et défini les fonctions à ce niveau également.
Maintenant quand j'ai mon message CM_CHECK_INTERFACE qui doit juste executer la fonction helloworld de la dll qui affiche une msgbox, j'ai le droit à une belle erreur "ST-Light DMX Control Software a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru" lol, donc je vais chercher du côté de la dll en elle même.
Si j'ai un problème je posterais un nouveau sujet car le problème a changé, sinon merci bcp.
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008 7 nov. 2004 à 12:59
Et allé encore n'importe quoi, j'ai retourné un 0 dans un void... BIEN !!! Désolé donc je reste sur l'ancienne fonction qui est censé afficher une messagebox et pas une erreur windows ...