PHP und C#

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PHP und C#

    Hy Fellows...

    Ich hoffe das ihr mir helfen könnt.

    Ich habe eine Funktionsbibliothek (DLL) die mit C# geschrieben ist und ich muß jetzt auf diese DLL mit PHP zugreifen.

    Welche Möglichkeiten habe ich eine DLL bzw die Funktionen dieser DLL mit PHP aufzurufen ???

    Btw es ist keine OCX !!!

    Thnx... ThomasW

  • #2
    nicht ganz mein bereich, aber ich denke mit exec() könnte dir geholfen werden?!?
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Comment


    • #3
      Hi,

      anspruchsvolle Aufgabe.

      C# läuft natürlich nur, wenn du die Net-Plattform installiert hast. Seit neusten gibt es auch eine Unterstützung von PHP auf .Net . Sie ist allerdings noch experimentell. Da PHP und C# dann mit der selben IL arbeiten, steht da einer Zusammenarbeit nichts mehr im Wege (theoretisch).

      Da eine Dll nicht eigenständig ohne exe oder dll, die an exe anknüft laufen kann, mußt die Anknüpfung selbst erstellen.

      Eine PHP.net Vorabversion findest Du unter www.php4win.com .
      Das .NET Framework unter http://msdn.microssoft.com/net.

      Mehr möchte ich jetzt eigentlich nur erzählen, wenn ich weiß wie dein c#/.net/php4/exe-dll - Skills sind...

      Need info 4 info

      Blaster
      Yuppi, endlich Elite ...

      Comment


      • #4
        @schmalle:

        An exec() hab ich auch schon gedacht, aber mit exec() kann ich nur Parameter übergeben aber ich bekomme keine Retour.

        Und die Ausgabe der Funktionen auf die Konsole umzubiegen und von dort aus mit PHP weiter zu verarbeiten ist aus Sicherheitsgründen nicht erlaubt. Außerdem wäre diese Lösung mehr als unschön... :-)

        @Blaster:

        Das C# nur mit dem DOTNET Framework läuft is eh klar. Und das PHP 4.2.1 mit dotnet_load die Unterstützung für ASSEMBLIES liefert hab ich auch schon erfahren. Das "experimentell" ist wohl eher das eigentliche Problem... :-)

        Die Frage ist wie stabil das ganze läuft bzw worauf zu achten ist.
        Gibt schon Erfahrungswerte ?

        Das ganze soll schließlich beim Kunden laufen ohne das man zwischendurch mal abstürzt. (Thema experimentell)

        PS : Das PHP und NET dann im gleichen IL laufen stimmt übrigens nicht...
        Mit "dotnet_load" wurde nichts anderes gemacht als eine Managed COM Verbindung zum NET Framework.

        Skills ? von 1 gar nicht bis 10 Profi

        C# ------------------- 6
        .NET ----------------- 6
        PHP ----------------- 4
        DLL/EXE ------------ 6
        (schätz ich mal...) :-)))

        Bye
        ThomasW

        Comment


        • #5
          @ThomasW:

          Ja, prima!

          1) Die Zend Engine 2.0 ist raus, in PHP 4.3 in der z.B. die .Net-Plattform fest integiert ist. D.h:

          PHP bekommt Applikationsentwicklungsstatus!
          www.php.net Startseite 2. Artikel von oben.

          unter
          http://www.php.net/source.php?url=/zend2_example.phps
          findest Du anspruchsvolle SampleCodes, die das belegen.

          Ich schlage folgendes vor:

          Die 'Exe' schreibst Du in PHP, so wie Sie in C# schreiben würdest:
          Du hast die Klassen
          1) WebForm für namespace System.Web
          2) WinForm für namespace Systems.Windows.Forms
          3) System für namespace System
          4) DotNET für Asseblies.

          Also Dll auslesen in C# würde etwa so laufen:

          using System;
          using System.Runtime.InteropService;

          namespace YourNamespace
          {
          class CDllImport
          {
          [DllImport("YourDll.dll")]
          public static extern int YourFunction('Arg1','Arr'):

          [....]
          }
          }
          Jetzt stellt sich die Frage was die Funktion macht? Wie sieht der 'C#-bedarf aus'

          Ein kurzes Bespiel für PHP.net als Consolenaus gabe
          <?php
          // Console erstellen
          $myCons = new DotNet("mscorlib.dll","System.Console"),

          // WriteLine-Methode von Console
          $myCons->WriteLine("\n So funktioniert PHP .Net");
          \>
          Wir müssen jetzt nur noch die Analogien herstellen.

          gruss

          Blaster
          Yuppi, endlich Elite ...

          Comment

          Working...
          X