Member 12938546 Ответов: 3

Как узнать код библиотеки DLL управляемом коде или неуправляемые экс .- kernel32.dll это управляемые или неуправляемые......?


Я знаю теорию управляемого и неуправляемого кода, но как узнать, что dll, которую я использую, является управляемой или неуправляемой
kernel32.dll
эта dll, которую я использую в своем проекте, я хочу знать, что dll является управляемой или неуправляемой

Что я уже пробовал:

[DllImport("advapi32.dll", EntryPoint = "CreateProcessAsUser", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public extern static bool CreateProcessAsUser(IntPtr hToken, String lpApplicationName, String lpCommandLine, ref SECURITY_ATTRIBUTES lpProcessAttributes,
    ref SECURITY_ATTRIBUTES lpThreadAttributes, bool bInheritHandle, int dwCreationFlags, IntPtr lpEnvironment,
    String lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, out PROCESS_INFORMATION lpProcessInformation);

3 Ответов

Рейтинг:
2

KarstenK

Вы должны знать, из какого источника взята библиотека dll. В Документация Micorsoft вы можете прочитать, что он принадлежит Windows.

Вот также некоторые подробные объяснения использование CreateProcessAsUser с помощью net-фреймворка. Читайте внимательно!!!


Рейтинг:
2

OriginalGriff

Вы не можете сказать, не зная по названию или фактически "глядя" на содержимое.

Но... если он нуждается в украшении DllImport, то он не управляется - DllImport - это механизм доступа к неуправляемым библиотекам DLL.

И kernel32.dll определенно неуправляемый-это часть Windows.

Если вы хотите проверить, попробуйте добавить файл в качестве ссылки на ваш проект - если он добавляет ok, он управляется. Если это не так, то он неуправляемый (или коррумпированный).


Рейтинг:
2

Pete O'Hanlon

Способ узнать, является ли сборка управляемой или неуправляемой, связан с чем-то, называемым заголовком PE (Portable Executable). Это стандартный заголовок файла для двоичного исполняемого кода Windows (будь то exe или dll). Подробная информация о том, управляется он или нет, содержится в этом заголовке. Здесь начинается отличный набор статей по этому формату Анатомия сборки .NET - PE-заголовки-простой разговор[^]. Если бы я был на твоем месте. Я бы прочитал об этом.