Einzelnen Beitrag anzeigen

Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Intranet versus Netzlaufwerk

  Alt 27. Nov 2003, 15:38
Yoh, man kann Win32-API Funktionen aus php-Scripten heraus aufrufen!

Vorrausetzung ist neben einem Windows-Server (irgendwie klar) die Extension "php_w32api.dll" (ist bei php im zip-package dabei), die aktiviert sein muss. Und die zu ladenden DLLs müssen scheinbar im Suchpfad liegen - ich habe es jetzt aufjedenfall nicht hinbekommen, eine DLL unter Angabe des kompletten Pfades zu laden...

Meine Test-DLL:
Delphi-Quellcode:
library Project2;

function GetVersion: PChar; stdcall;
begin
  Result := PChar('1.2.0.1');
end;

exports
  GetVersion;

begin
end.
Diese DLL habe ich zum testen in mein System32 kopiert...

Und dann das PHP-Script:
Code:
<?php

  $api = new win32;

  $api->RegisterFunction('string GetVersion () From Project2.dll');

  $version = $api->GetVersion();

  echo $version;

  $api->UnregisterFunction('GetVersion');

?>
Das zumindestens hat schonmal funktioniert. Das Problem ist alleine die außerst spärliche Doku zum Thema w32api in PHP. Das kompletteste und aktuellste zu dem Thema scheint mir das hier zu sein: http://wobster.mynnga.de/w32api.txt


Aber mit Hilfe des Scriptes wäre es möglich, "meinen" Vorschlag etwas zu automatisieren, indem das Script als Ausgabe einfach eine Art Infile produziert... So müsste das nicht mehr manuell gepflegt werden - ich würde aber vielleicht über eine Art Caching nachdanken, damit nicht bei jedem Programmstart das Script alle 10 DLLs laden, ausführen, unloaden muss...


Gruß

Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat