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.
Code :
- #include <vcl.h>
- #pragma hdrstop
- #include "main.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TForm1 *Form1;
- typedef int (__stdcall *MYDLLFUNC)(int nAviID, const char* pcFile, PIS_VIDEOHDR pvh);
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button1Click(TObject *Sender)
- {
- HINSTANCE hinstDLL;
- MYDLLFUNC ImpFuncDLL;
- if ((hinstDLL=LoadLibrary("Falcon.dll" )))
- {
- ImpFuncDLL = (MYDLLFUNC)GetProcAddress(hinstDLL, "isavi_SaveJPG" );
- if (ImpFuncDLL)
- {
- //code a mettre ici
- }
- FreeLibrary(hinstDLL);
- }
- }
|
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..........