Récupération d'un objet OLE
Stagiaire WDF
Inscrit:
04/10/2010 16:30
Post(s): 1
Bonjour à tous ,

Je travaille actuellement sur une interface pour reconnaitre du texte via un OCR. Pour cela j'ai a disposition une librairie et une documentation pour manipuler l'objet.

Mon problème est la création de cette objet :
Apparemment, l'objet est créé en appelant une fonction de l'interface (initializeEngine) : cette fonction nous donne une adresse mémoire.
Comment transformer cette adresse mémoire en objet OLE ?

Merci d'avance,


Voici l'exemple donné en VB :
Public Engine As FCEngine.IFCEngine

Private Declare Function InitializeEngine Lib "FCEngine.dll" ( _
ByVal devSN As String, _
ByVal Reserved1 As String, _
ByVal Reserved2 As String, _
EngineObj As FCEngine.IFCEngine) As Long
'devSN : [in] A string containing developer serial number that matches the necessary license. 
'Reserved1 : [in] Reserved for future use. The empty string "" or Null pointer must be passed. 
'Reserved2 : [in] Reserved for future use. The empty string "" or Null pointer must be passed. 
'EngineObj : [out] A pointer to IFCEngine* pointer variable that receives the interface pointer to the resulting FCEngine object. 

Public Sub LoadFCEngine()
If Not Engine Is Nothing Then Exit Sub

' Visual Basic may load libraries from the current path only
ChDir "PathTo FCEngine.dll"

' this conversion is needed to pass a Unicode string as a DLL function parameter correctly 
Dim devSN As String, devSN_w As String
devSN_w = StrConv(devSN, vbUnicode)

Dim ret As Long
ret = InitializeEngine(devSN_w, "", "", Engine)
If ret <> 0 Then
Err.Raise ret
End If
End Sub

' Open FlexiCapture project
Dim project As FCEngine.IFCProject
Set project = Engine.OpenProject("D:\TestProject\TestProject.fcproj")

=> Voici le code en Windev :
nAllocateur est un entier système
lpc_Serialnumber est une chaine = ppc_SerialNumber
fRepEnCours("C:\Program Files\ABBYY FlexiCapture Engine 8.0\Bin")
lpe_Retour = API("FCEngine.dll","InitializeEngine",AnsiVersUnicode(lpc_Serialnumber),"","",&nAllocateur)
SI PAS lpe_Retour = 0 ALORS
Erreur("Erreur")
Retour
FIN

lpo_Objet est un OLE dynamique
//-------------------------------------------------------------------------------
//Comment allouer l'objet avec l'adresse mémoire récupérée ???????
//-------------------------------------------------------------------------------

lpe_Retour = lpo_Objet>>OpenProject("C:\Source\ScriptorV20\ProjetFlexiCapture\SIV\SIV\SIV.fcproj")
SI PAS lpe_Retour = 0 ALORS
Erreur("Erreur")
RETOUR
FIN



Merci d'avance,

Contribution le : 04/10/2010 16:32

Edité par drcharly93 sur 5/10/2010 0:21:42
Créer un fichier PDF de la contribution Imprimer


Re: Récupération d'un objet OLE
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
La récupération dans un objet ole dynamique semble bonne.
En revanche, je pense qu'on teste l'instanciation par une comparaison à NULL et non 0.

Contribution le : 12/10/2010 11:42
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2