C# - äquivalent von DllMain in C (WinAPI)

Habe ich eine ältere app (ca. 2005), die akzeptiert dll-plugins. Die app war ursprünglich für den Win32-C plugins, aber ich habe eine C# dll-Vorlage. Mein problem: ich brauche, um einige der einmaligen Initialisierung, die in einem Win32-C-dll gemacht werden würde in DllMain:

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
  [one-time stuff here...]
}

Ist es ein C# äquivalent? Es gibt keine "DllMain" in der C# - Vorlage, die ich habe. Ich habe versucht, eine wörtliche C# - interpretation, aber nicht gehen: die dll funktioniert, aber es wird nicht ausgelöst, die DllMain-Funktion.

public static bool DllMain(int hModule, int reason, IntPtr lpReserved) {
  [one time stuff here...]
}
einmalige Initialisierung von was? Da DllMain ist prozedurale, und C# ist objektorientiert, ich Frage mich, was die Initialisierung, die Sie durchführen müssen außerhalb der Klasse nicht aufgerufen werden, Sie von innen?
es hängt auch von der Art der Anwendung, die Sie bauen, Konsole, web, windows client, windows-service, etc.
Sie nicht tun sollten erhebliche Initialisierung in DllMain.
Melton denken über Dinge wie das laden der plugins, wo die hosting-app nicht genau wissen, was in der DLL. In diesem Fall möchten Sie vielleicht, dass Ihr plugin registrieren Sie die Anwendung so, dass Sie gefunden werden können, wenn nötig, ohne das der host das plugin.

InformationsquelleAutor MrSparkly | 2011-11-21

Schreibe einen Kommentar