auf DLL remote zugreifen?

16/01/2009 - 10:46 von Michael Andreas | Report spam
Hi,

ich greife per DllImport auf eine DLL zu die lokal auf meinem
Rechner liegt.
[DllImport("ExampleDll.dll")].
Welche Möglichkeit gibt es diese DLL remote zur Laufzeit dynamisch
anzusprechen?
(Die DLL kann irgendwo im Netz liegen, zur Entwurfszeit nicht bekannt)

Danke Michael
 

Lesen sie die antworten

#1 tcnt.Dzaebel
16/01/2009 - 11:55 | Warnen spam
Hallo Michael,

ich greife per DllImport auf eine DLL zu die lokal auf meinem
Rechner liegt. [DllImport("ExampleDll.dll")].
Welche Möglichkeit gibt es diese DLL remote zur Laufzeit dynamisch
anzusprechen?
(Die DLL kann irgendwo im Netz liegen, zur Entwurfszeit nicht bekannt)



Sollte über LoadLibrary nebst GetProcAddress
etc. gehen.

[DllImport("kernel32.dll", EntryPoint = "LoadLibraryW", SetLastError true)]
public static extern IntPtr LoadLibrary(
[In()] [MarshalAs(UnmanagedType.LPTStr)] string lpFileName);

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool FreeLibrary(
[In()] System.IntPtr hModule);

public delegate int FARPROC();

[DllImport("kernel32.dll", SetLastError = true)]
public static extern FARPROC GetProcAddress(
[In()] IntPtr hModule,
[In()] [MarshalAs(UnmanagedType.LPStr)] string lpProcName);

void TestRemote()
{
IntPtr lib = LoadLibrary(@"\\NetzPC\c$\MeinVerzeichnis
\MeineDll.dll");
if (lib == IntPtr.Zero) throw new Win32Exception();
FARPROC meinMethod = GetProcAddress(lib, "MeineMethode");
myMethod.DynamicInvoke(...);
}

[Use unmanaged C++ DLL in C# : C++, C#]
http://www.experts-exchange.com/Pro...65024.html


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen