J'ai besoin de récupérer des données venant d'une appli Windows, qu'il
est possible de piloter avec une DLL et non par COM.
J'ai essayé
d'utiliser les fonctionnalités w32api de php version 4.3.0 Mais j'ai un
message indiquant que les fonctions sont inconnues dans la dll w32 de
php, j'ai vérifié la syntaxe c'est OK. Alors est-ce toujours possible
d'utiliser cette fonctionnalité de PHP
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
loufoque
Yann wrote:
J'ai besoin de récupérer des données venant d'une appli Windows, qu'il est possible de piloter avec une DLL et non par COM. J'ai essayé d'utiliser les fonctionnalités w32api de php version 4.3.0 Mais j'ai un message indiquant que les fonctions sont inconnues dans la dll w32 de php, j'ai vérifié la syntaxe c'est OK. Alors est-ce toujours possible d'utiliser cette fonctionnalité de PHP
Merci à vous
http://wobster.mynnga.de/w32api.txt Doc pour PHP4.3.1
Pour PHP5+, ce sera encore différent (extension FFI)
Yann wrote:
J'ai besoin de récupérer des données venant d'une appli Windows, qu'il
est possible de piloter avec une DLL et non par COM.
J'ai essayé
d'utiliser les fonctionnalités w32api de php version 4.3.0 Mais j'ai un
message indiquant que les fonctions sont inconnues dans la dll w32 de
php, j'ai vérifié la syntaxe c'est OK. Alors est-ce toujours possible
d'utiliser cette fonctionnalité de PHP
Merci à vous
http://wobster.mynnga.de/w32api.txt
Doc pour PHP4.3.1
Pour PHP5+, ce sera encore différent (extension FFI)
J'ai besoin de récupérer des données venant d'une appli Windows, qu'il est possible de piloter avec une DLL et non par COM. J'ai essayé d'utiliser les fonctionnalités w32api de php version 4.3.0 Mais j'ai un message indiquant que les fonctions sont inconnues dans la dll w32 de php, j'ai vérifié la syntaxe c'est OK. Alors est-ce toujours possible d'utiliser cette fonctionnalité de PHP
Merci à vous
http://wobster.mynnga.de/w32api.txt Doc pour PHP4.3.1
Pour PHP5+, ce sera encore différent (extension FFI)
Yann
In <cav7a6$q6m$ loufoque wrote:
http://wobster.mynnga.de/w32api.txt Doc pour PHP4.3.1
Pour PHP5+, ce sera encore différent (extension FFI)
Merci pour la doc, mais en voulant l'implémenter avec ma DLL, ça ne fonctionne pas, ma DLL ne passe pas les argument par réference mais par valeur (info venant du producteur de la DLL, donc pas de "&" devant les argument), j'ai suivie la doc mais mon code est plantogène. le voici
dl("php_w32api.dll"); $api=new win32;
$api->registerfunction("long Docubase (long Ctx, long hWnd, long Func, string BuffInOut) From dbtlkt32.dll"); $api->registerfunction("long Docubase2 (long Ctx, long hWnd, long Func, string BuffIn, string BuffOut, long SizeBuffOut) From dbtlkt32.dll");
In <cav7a6$q6m$1@news-reader2.wanadoo.fr> loufoque wrote:
http://wobster.mynnga.de/w32api.txt
Doc pour PHP4.3.1
Pour PHP5+, ce sera encore différent (extension FFI)
Merci pour la doc, mais en voulant l'implémenter avec ma DLL, ça ne
fonctionne pas, ma DLL ne passe pas les argument par réference mais par
valeur (info venant du producteur de la DLL, donc pas de "&" devant les
argument), j'ai suivie la doc mais mon code est plantogène.
le voici
dl("php_w32api.dll");
$api=new win32;
$api->registerfunction("long Docubase (long Ctx, long hWnd, long Func,
string BuffInOut) From dbtlkt32.dll");
$api->registerfunction("long Docubase2 (long Ctx, long hWnd, long Func,
string BuffIn, string BuffOut, long SizeBuffOut) From dbtlkt32.dll");
http://wobster.mynnga.de/w32api.txt Doc pour PHP4.3.1
Pour PHP5+, ce sera encore différent (extension FFI)
Merci pour la doc, mais en voulant l'implémenter avec ma DLL, ça ne fonctionne pas, ma DLL ne passe pas les argument par réference mais par valeur (info venant du producteur de la DLL, donc pas de "&" devant les argument), j'ai suivie la doc mais mon code est plantogène. le voici
dl("php_w32api.dll"); $api=new win32;
$api->registerfunction("long Docubase (long Ctx, long hWnd, long Func, string BuffInOut) From dbtlkt32.dll"); $api->registerfunction("long Docubase2 (long Ctx, long hWnd, long Func, string BuffIn, string BuffOut, long SizeBuffOut) From dbtlkt32.dll");
Le code plante php.exe sur mon Win2000 à la ligne suivante
$version=$api->Docubase2(0,0,1003,0,0,0);
j'ai la vaque impression que la DLL, n'est pas clean, ou bien le module W32api a du mal à passer les variables autrement que par référence. A titre d'info voici la définition des params de la fonction utlisée
$api->registerfunction("long Docubase2 (long Ctx, long hWnd, long Func, string BuffIn, string BuffOut, long SizeBuffOut) From dbtlkt32.dll");
Ctx : Contexte de travail du toolkit hWnd : Handle de le fenêtre (windows) qui sera désignée comme étant le conteneur des messages d'erreur ou d'info Func : Identifiant des fonctions du toolkit BuffInOut : buffer utilisé non seulement pour passer des params à un fonction mais aussi pour récupérer les données renvoyées par cette dernière. BuffIn : Utilisé pour passer les params à une fonction BuffOut : utilisé pour récupérer des données renvoyées par une fonction SizeBuffOut : Taille du buffer de sortie BuffOut
Le pire c'est qu'en VB ce code ne pose aucun problème, c'est vrai que VB n'est pas php
In <cb7njk$r5u$ loufoque wrote:
mon code est plantogène. À quel niveau ?
Le code plante php.exe sur mon Win2000 à la ligne suivante
$version=$api->Docubase2(0,0,1003,0,0,0);
j'ai la vaque impression que la DLL, n'est pas clean, ou bien le module
W32api a du mal à passer les variables autrement que par référence.
A titre d'info voici la définition des params de la fonction utlisée
$api->registerfunction("long Docubase2 (long Ctx, long hWnd, long Func,
string BuffIn, string BuffOut, long SizeBuffOut) From dbtlkt32.dll");
Ctx : Contexte de travail du toolkit
hWnd : Handle de le fenêtre (windows) qui sera désignée comme étant le
conteneur des messages d'erreur ou d'info
Func : Identifiant des fonctions du toolkit
BuffInOut : buffer utilisé non seulement pour passer des params à un
fonction mais aussi pour récupérer les données renvoyées par cette
dernière.
BuffIn : Utilisé pour passer les params à une fonction
BuffOut : utilisé pour récupérer des données renvoyées par une fonction
SizeBuffOut : Taille du buffer de sortie BuffOut
Le pire c'est qu'en VB ce code ne pose aucun problème, c'est vrai que VB
n'est pas php
In <cb7njk$r5u$1@news-reader3.wanadoo.fr> loufoque wrote:
Le code plante php.exe sur mon Win2000 à la ligne suivante
$version=$api->Docubase2(0,0,1003,0,0,0);
j'ai la vaque impression que la DLL, n'est pas clean, ou bien le module W32api a du mal à passer les variables autrement que par référence. A titre d'info voici la définition des params de la fonction utlisée
$api->registerfunction("long Docubase2 (long Ctx, long hWnd, long Func, string BuffIn, string BuffOut, long SizeBuffOut) From dbtlkt32.dll");
Ctx : Contexte de travail du toolkit hWnd : Handle de le fenêtre (windows) qui sera désignée comme étant le conteneur des messages d'erreur ou d'info Func : Identifiant des fonctions du toolkit BuffInOut : buffer utilisé non seulement pour passer des params à un fonction mais aussi pour récupérer les données renvoyées par cette dernière. BuffIn : Utilisé pour passer les params à une fonction BuffOut : utilisé pour récupérer des données renvoyées par une fonction SizeBuffOut : Taille du buffer de sortie BuffOut
Le pire c'est qu'en VB ce code ne pose aucun problème, c'est vrai que VB n'est pas php
In <cb7njk$r5u$ loufoque wrote:
mon code est plantogène. À quel niveau ?
loufoque
Yann wrote:
j'ai la vaque impression que la DLL, n'est pas clean, ou bien le module W32api a du mal à passer les variables autrement que par référence.
Apparement. Mais bon en même temps c'est un module experimental. Je vois pas trop ce qu'on peut faire pour régler ton problème, désolé.
Yann wrote:
j'ai la vaque impression que la DLL, n'est pas clean, ou bien le module
W32api a du mal à passer les variables autrement que par référence.
Apparement. Mais bon en même temps c'est un module experimental.
Je vois pas trop ce qu'on peut faire pour régler ton problème, désolé.