Hallo.
Es geht um folgenden Code:
In Vb.net funktioniert es (hab die Funktionsvorschriften genauso von pinvoke übernommen).
Wieso funktioniert der C# Code nicht?
Bekomme bei GetModuleHandle immer 0 zurück.
Es geht um folgenden Code:
C#-Quellcode
- [DllImport("Kernel32.Dll", SetLastError = true, CharSet = CharSet.Ansi)] static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] String lpFileName);
- [DllImport("Kernel32.Dll", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]static extern IntPtr GetProcAddress(IntPtr hModule, String procName);
- [DllImport("Kernel32.Dll", CharSet = CharSet.Auto)] public static extern IntPtr GetModuleHandle(String lpModuleName);
- private static void doit()
- {
- String BaseP = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Mozilla Firefox");
- String P = Path.Combine(BaseP, "nss3.dll");
- if(!File.Exists(P)) Console.WriteLine("Does not exist!");
- LoadLibrary(P);
- IntPtr k = GetModuleHandle("nss3");
- Console.WriteLine(k.ToString());
- }
In Vb.net funktioniert es (hab die Funktionsvorschriften genauso von pinvoke übernommen).
Wieso funktioniert der C# Code nicht?
Bekomme bei GetModuleHandle immer 0 zurück.