我正在尝试在windows平台上构建的Mono框架上运行应用程序。我知道其中使用了一些特定于平台的Interop调用。当使用debug在Mono中运行应用程序时,我收到了以下消息。我知道它正在寻找LoadLibrary,但我的兴趣是了解"__Internal",这是什么意思?
Mono: DllImport attempting to load: '__Internal'.
Mono: DllImport loaded library '(null)'.
Mono: DllImport searching in: '__Internal' ('(null)').
Mono: Searching for 'LoadLibrary'.
Mono: Probing 'LoadLibrary'.
Mono: Probing 'LoadLibrary'.
Mono: Probing 'LoadLibraryA'.
Mono: Probing 'LoadLibraryA'.
Mono: DllImport searching in: '__Internal' ('(null)').
Mono: Searching for 'GetProcAddress'.
Mono: Probing 'GetProcAddress'.
Mono: Probing 'GetProcAddress'.
Mono: Probing 'GetProcAddressA'.
Mono: Probing 'GetProcAddressA'.
Mono: DllImport searching in: '__Internal' ('(null)').
Mono: Searching for 'FreeLibrary'.
Mono: Probing 'FreeLibrary'.
Mono: Probing 'FreeLibrary'.
Mono: Probing 'FreeLibraryA'.
Mono: Probing 'FreeLibraryA'.
Mono: DllImport searching in: '__Internal' ('(null)').
Mono: Searching for 'LoadLibrary'.
Mono: Probing 'LoadLibrary'.
Mono: Probing 'LoadLibrary'.
Mono: Probing 'LoadLibraryA'.
Mono: Probing 'LoadLibraryA'.致以最良好的问候,欧姆基
发布于 2013-12-09 21:04:41
它是正在搜索函数的DLL的名称。通常是"kernel32.dll“来查找LoadLibrary(),但是Mono也支持特殊的名字"__Internal"。这使得它在已经加载的DLL中查找导出的函数。该功能最初是为非托管程序中的embedding Mono设计的。
它可以在Windows上工作,即使没有嵌入Mono。Kernel32.dll总是加载的,因为它是运行进程所必需的。因此,可能的DllImport指令是:
[DllImport ("__Internal", CharSet = CharSet.Ansi)]
static extern bool LoadLibrary(string path);https://stackoverflow.com/questions/20469326
复制相似问题