Я уверен, что мне не хватает чего-то очевидного в документации.Я звоню LoadLibrary
из C # и передаю DLL, которой там нет.Я возвращаюсь IntPtr.Zero
, как и ожидалось, но когда я звоню Marshal.GetLastWin32Error
, я всегда получаю 0.
Вот пример.
class Program {
[DllImport("kernel32.dll")]
private static extern IntPtr LoadLibrary(string dllToLoad);
[DllImport("kernel32.dll")]
private static extern bool FreeLibrary(IntPtr hModule);
static void Main(string[] args) {
IntPtr pDll = LoadLibrary(@"c:\NotThere.dll");
int err = Marshal.GetLastWin32Error();
Console.WriteLine(err);
Console.ReadLine();
}
}
Я добавляю код какэто для программы, которая уже не может загрузить DLL без видимой причины.Есть идеи, почему я не получаю сообщение об ошибке?