[php] Benaderen Delphi DLL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een parser gedownload. Deze parser genereerd Delphi code en voert deze netjes en goed uit. De parser draait als Delphi dll op de server. Nu wil ik deze parser(dll) aanroepen via php.

Is dit mogelijk. Zo ja?? Hoe kan ik dan op het resultaat dan opvangen?? De parser heeft natuurlijk enige tijd nodig met verwerken.

Ik maak verder gebruik van een apache server op windows XP.

Acties:
  • 0 Henk 'm!

  • JER00N
  • Registratie: Maart 2002
  • Niet online
Met exec() kan je wel programma's uitvoeren, alleen DLL's zal moeilijk worden aangezien die niet zelfstandig zijn. Voor zover ik weet heeft PHP ook geen DLL-ondersteuning.

Het resultaat kan je dan ook niet opvangen. Wat je wel kan doen is dat die DLL zijn output naar een bestandje schrijft, die je vervolgens met PHP weer kan uitlezen.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het kan op zich wel met de w32api module
www.php.net/w32api

[ Voor 14% gewijzigd door .oisyn op 24-05-2004 17:58 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
JER00N schreef op 24 mei 2004 @ 17:55:
Met exec() kan je wel programma's uitvoeren, alleen DLL's zal moeilijk worden aangezien die niet zelfstandig zijn. Voor zover ik weet heeft PHP ook geen DLL-ondersteuning.

Het resultaat kan je dan ook niet opvangen. Wat je wel kan doen is dat die DLL zijn output naar een bestandje schrijft, die je vervolgens met PHP weer kan uitlezen.
Je kan een DLL gewoon aanroepen vanuit de webbrowser. Mijn vraag is, dat je dan eventueel ook output kunt afvangen. Misschien doormiddel van een timeout.

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Verwijderd schreef op 24 mei 2004 @ 17:58:
[...]


Je kan een DLL gewoon aanroepen vanuit de webbrowser. Mijn vraag is, dat je dan eventueel ook output kunt afvangen. Misschien doormiddel van een timeout.
Als dat werkt, kan je hem met fopen als URL van je eigen server trekken, en iets met de output in PHP gaan doen.

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Nee, dat werkt niet. Een DLL heeft geen output naar een console en heeft een process nodig die m laad. Met de suggestie van .oisyn kan je de DLL laden en functies aanroepen. De webserver moet dan natuurlijk wel op een windows machine draaien. Andere oplossingen zouden een CGItje of ISAPI DLL kunnen zijn die je speciaal maakt om de DLL te laden en aan te roepen. Vanuit daaruit kan je dat makkelijk doen en je php scriptje kan daarmee weer makkelijk praten.

We adore chaos because we like to restore order - M.C. Escher


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Je kunt misschien exec() gebruiken in combinatie met rundll32.exe in je c:\windows\system32 map :?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

LordLarry schreef op 24 mei 2004 @ 19:28:
Andere oplossingen zouden een CGItje of ISAPI DLL kunnen zijn die je speciaal maakt om de DLL te laden en aan te roepen. Vanuit daaruit kan je dat makkelijk doen en je php scriptje kan daarmee weer makkelijk praten.
Of een php module schil maken om de dll

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1