Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2007, 10h30   #1
Membre actif
 
Inscription : juin 2003
Messages : 228
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juin 2003
Messages : 228
Points : 182
Points : 182
Par défaut Accès à un objet OLE en PHP

Bonjour,

Je souhaite accéder à un objet OLE (3DSMax) avec PHP, mais je suis confronté au problème suivant :
Je parviens à instancier l'objet, mais les méthodes que j'ai défini dessus sont "inexistante".

Instanciation :
Code :
1
2
3
4
 
$Max = new COM("MAX.Application") or die("impossible d'instancier Max");
com_print_typeinfo($Max);
$Max->affiche("toto");
La fonction "affiche" est bien défini dans mon objet OLE, puisque j'arrive à l'utiliser via VB sous Excel.


Voici l'erreur que j'obtiens :
Citation:
Warning: Unable to find typeinfo using the parameters supplied in C:\wamp\www\ole\ole.php on line 2

Fatal error: Call to undefined method com::affiche() in C:\wamp\www\ole\ole.php on line 3
De plus, j'ai testé l'utilisation (via les très bon tuto de developpez.com) de l'objet OLE Excel dans ce même script, et ça fonctionne très bien.

Je pense qu'il s'agit d'une erreur lié à la description de l'objet dans un fichier TLB, mais je n'ai aucune certitude.
Avez-vous des idées de ce qui pourrait être à l'origine du problème ?

Merci.
pedouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 10h40   #2
Membre actif
 
Inscription : juin 2003
Messages : 228
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juin 2003
Messages : 228
Points : 182
Points : 182
Ci après, le code d'appel à l'objet dans Excel :

Code :
1
2
3
 
Set Max = CreateObject("MAX.Application")
Call Max.affiche("test ole")
et celui-ci fonctionne...
pedouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 16h34   #3
Membre actif
 
Inscription : juin 2003
Messages : 228
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juin 2003
Messages : 228
Points : 182
Points : 182
Je viens de tester en Java, ça fonctionne aussi :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
import jp.ne.so_net.ga2.no_ji.jcom.excel8.*;
import jp.ne.so_net.ga2.no_ji.jcom.*;
import java.io.File;
import java.util.Date;
 
public class testMax {
	public static void main(String[] args) throws Exception {
        ReleaseManager rm = new ReleaseManager();
        try {
        	IDispatch wdApp = new IDispatch(rm, "Max.Application");
        	//wdApp.put("Visible", new Boolean(true));
        	//IDispatch wdDocuments = (IDispatch)wdApp.get("Documents");
        	Object[] arglist1 = new Object[1];
        	//String userdir = "D:\\...\\CreationRTF";
        	arglist1[0] = "totojava";
        	//IDispatch wdDocument = (IDispatch)wdDocuments.method("Open", arglist1);
        	wdApp.invoke("affiche", arglist1);
        	//wdApp.method("Quit", null);
        	}
        	catch(Exception e) { e.printStackTrace(); }
        	finally { rm.release(); }
        	}
	}
Je ne comprend vraiment pas pourquoi PHP n'en veut pas ...
pedouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h37.


 
 
 
 
Partenaires

Hébergement Web