Utiliser une DLL......... [borland c++ buider] - C++ - Programmation
Marsh Posté le 02-07-2004 à 12:20:52
à mo, avis ce qui manque c'est simplement le type PIS_VIDEOHDR
Marsh Posté le 02-07-2004 à 12:57:50
ok, et comment je le recupere ce type , il me faudrait au moin un fichier.h ?
Marsh Posté le 02-07-2004 à 12:59:05
bah ça j'en sais rien
faut savoir quel type de données la fonction attend
Marsh Posté le 02-07-2004 à 13:52:38
d'apres la doc j'ai çà mais rien de plus :
pvh PIS_VIDEOHDR : Description of a compressed image to be saved. If this is NULL, an intern buffer will be created to store the captured image.
PIS_VIDEOHDR est le type et pvh le nom du parametre.
Marsh Posté le 02-07-2004 à 14:23:22
tape videohdr dans google et tu trouveras peut-être ce que tu cherches
en tout cas le 1er lien renvoyé est le msdn de Microsoft et il te donne un type que j'ai recopié ci-après
typedef struct videohdr_tag {
LPBYTE lpData;
DWORD dwBufferLength;
DWORD dwBytesUsed;
DWORD dwTimeCaptured;
DWORD dwUser;
DWORD dwFlags;
DWORD_PTR dwReserved[4];
} VIDEOHDR, NEAR *PVIDEOHDR, FAR * LPVIDEOHDR;
ça va peut-être t'aider
Marsh Posté le 02-07-2004 à 14:34:09
ha oui merci je crois que ca va carrement m'aider.........
je jette un oeuil de suite dessus.
Marsh Posté le 06-07-2004 à 10:22:36
ok c'est bon j'ai reussi a capturer une image sous borland ca marche nickel.
Maintenant je voudrais realisé ce meme programme sous LabWindowsCvi mais là c'est une autre paire de manche.
Voici mon programme tout simple qui lit la version de la dll et qui fonctionne impect sous borland voici le code sous borland :
Code :
|
j'aimerais effectuer ce meme code sous LabWindowsCvi. J'ai inclus sous cvi le point h et le lib . Lorsque j'utilise le meme code de borland a cvi , cvi ne me reconnais pas "HINSTANCE" et d'autre erreur lié a la premiere...
une idée comment ouvrir et utilisé une dll sous cvi ?
J'ai bien trouvé un toturial mais celui-ci utilise une dll construite sous Cvi donc les procedures d'appels sont differentes.
Marsh Posté le 02-07-2004 à 11:51:24
Bonjour,
voici mon probleme:
J'utilise une carte d'acquisition video avec une camera connecter dessus. J'ai la dll permettant de piloter cette carte d'acquisition. La fonction que je veux utiliser dans le dll est une fonction permettant decapturer l'image en cours sur la camera est de l'enregistrer dans un fichier .jpg
voici le prototype de la fonction de la dll :
INT isavi_SaveJPG (int nAviID, const char* pcFile, PIS_VIDEOHDR pvh);
Saves a picture into a file.
Parameter Type Value Description:
nAviID int Instance ID returned by isavi_InitAVI()
pcFile const char* Pointer to the filename where the picture should be
saved to. If this is NULL, a file selection dialog will be opened.
pvh PIS_VIDEOHDR Description of a compressed image to be saved. If this is NULL, an intern buffer will be created to store the captured image.
Error code (“IS_AVI_” Description
NO_ERR No error
ERR_INVALID_ID The specified instance could not be found
ERR_FILE_OPEN Error while creating the file
ERR_PARAMETER If an exception occurs
ERR_NEW_FAILED Memory allocation failed
ERR_INVALID_FILE The user did not specify a valid file
Cette DLL est fourni sans .h ni .lib
J'ai donc essayer d'utiliser la dll sous borland avec un programme tout simple utilisant un bouton.
Mais borland me fait une erreur sur la ligne suivante et avec le curseur placé apres PIS_VIDEOHDR :
typedef int (__stdcall *MYDLLFUNC)(int nAviID, const char* pcFile, PIS_VIDEOHDR pvh);
E2257 , attendue Erreur du compilateur
Une virgule était attendue dans une liste de déclarations, d'initialisations, ou de paramètres.
Ce problème vient en général d'un élément de syntaxe manquant en amont du fichier ou dans l'un des en-têtes inclus.
Il a pas l'air de connaitre le "PIS_VIDEOHDR ", mais peut-etre que j'ai des erreurs dans mon code.....
Quelqu'un a une idée pour que je puisse utiliser ma fonction ?
merci d'avance de vos reponses..........