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.
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.
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:
regasm HelloWorld.dll
Geben Sie das Eingabeaufforderungsfenster ein :
Code kopieren
Der Code lautet wie folgt:
gacutil /I HelloWorld.dll
Wenn keine starke Namenssignatur durchgeführt wird, Dieser Schritt führt zu einem Ladefehler.
Code kopieren
Der Code lautet wie folgt:
$r =new Com("HelloWorld.Hello"); $s=$r->Write();
echo $s;
At the Eingabeaufforderung:
Code kopieren
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.