PHP ruft die von C# entwickelte DLL-Klassenbibliotheksmethode auf

WBOY
Freigeben: 2016-07-29 09:09:08
Original
1192 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Methode zum Aufrufen der in C# entwickelten DLL-Klassenbibliothek durch PHP vorgestellt, einschließlich eines vollständigen und detaillierten DLL-Produktionsschritts und der PHP-Aufrufmethode.

Manchmal müssen wir in PHP geschriebene DLL-Bibliotheken verwenden, z. B. in C# geschriebene DLLs. Die Methode besteht darin, die neue COM-Methode von PHP aufzurufen registriert und die Assembly wird im globalen Cache abgelegt.

1. Erstellen Sie eine C#-Klassenbibliothek und benennen Sie sie: HelloWorld
2. Öffnen Sie die Eigenschaften des Projekts, klicken Sie links auf „Anwendung“ und dann auf die Schaltfläche „Assembly-Informationen“. , Im Popup-Dialog müssen Sie unten ankreuzen: Assembly COM-sichtbar machen! Andernfalls ist diese DLL im COM-Modus nicht zugänglich (Sie können auch [ComVisible(true)] in die Klassendeklaration schreiben Code, der den gleichen Effekt hat, muss mithilfe von System.Runtime.InteropServices hinzugefügt werden.

PHP ruft die von C# entwickelte DLL-Klassenbibliotheksmethode auf

3. Erstellen Sie eine starke benannte Signaturdatei und verwenden Sie
Verwenden Sie das „Vsitual Studio .Net-Tool“ von vs.net –>Vistual Studio .Net-Eingabeaufforderung, geben Sie sn -k d:HelloWorld.snk ein und drücken Sie die Eingabetaste, um eine Signaturdatei mit starkem Namen zu erstellen
Öffnen Sie die Eigenschaften des Projekts, Klicken Sie links auf „Signieren“ und aktivieren Sie „Signieren Sie die Baugruppe“. Wählen Sie eine Schlüsseldatei mit starkem Namen: Wählen Sie die soeben erstellte Datei „HelloWorld.snk“ aus.

PHP ruft die von C# entwickelte DLL-Klassenbibliotheksmethode auf

4 eine Klassenbibliothek und kompilieren Sie sie in eine DLL

Code kopieren Der Code lautet wie folgt:

Namespace HelloWorld
{
//[ ComVisible(true)] //oder überprüfen Sie „Assembly COM-Visible“ im Dialogfeld „Application-Assembly_Information“ ;
öffentliche Klasse Hello
{
öffentliche Zeichenfolge Write()
{
return „Hello World "; 🎜>

5. Suchen Sie den DLL-Ordnerpfad und verwenden Sie dann das „Vsitual Studio .Net Tool“ von vs.net -->Vistual Studio .Net-Eingabeaufforderung
, um den DLL-Ordner einzugeben und Geben Sie ein:



Kopieren Sie den Code
Der Code lautet wie folgt:

regasm HelloWorld.dllZu diesem Zeitpunkt ist die .net-Assembly Diese .dll wird zu einer Standard-Com-Komponente, die jedoch noch nicht verwendet werden kann. Sie muss in eine globale Com-Komponente umgewandelt werden.

Fügen Sie die Assembly zum globalen Assembly-Cache hinzu.

Geben Sie das Eingabeaufforderungsfenster ein :



Code kopieren
Der Code lautet wie folgt:

gacutil /I HelloWorld.dll

Dabei Gleichzeitig wird Ihre DLL in den globalen Assembly-Cache kopiert. Mit anderen Worten: Diese DLL-Komponente kann unabhängig von der Festplatte auf diesem Computer verwendet werden.

Wenn keine starke Namenssignatur durchgeführt wird, Dieser Schritt führt zu einem Ladefehler.




PHP-Test:

PHP ruft die von C# entwickelte DLL-Klassenbibliotheksmethode auf

Code kopieren
Der Code lautet wie folgt:

$r =new Com("HelloWorld.Hello"); $s=$r->Write();

echo $s;


At the Eingabeaufforderung:


Code kopieren

Der Code lautet wie folgt:

CD [/D] [Laufwerk:][Pfad] #Geben Sie den angegebenen Pfad ein

CD [..] #Zurück zum übergeordneten Verzeichnis Originaltext reproduziert von: http://www.jb51.net/article/52846.htm


Das Obige stellt die Methode vor, mit der PHP die von C# entwickelte DLL-Klassenbibliothek aufruft, einschließlich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die an PHP-Tutorials interessiert sind.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage