Message de rapport:
 

Récupération d'un objet OLE

Sujet: Récupération d'un objet OLE
par Mickaël sur 4/10/2010 16:32:13

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,
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