如何使用BTMemoryModule从Delphi调用混合模式的C#dll
本文关键字:混合 模式 C#dll 调用 Delphi 何使用 BTMemoryModule | 更新日期: 2023-09-27 18:20:27
我有一个用C#编写的DLL,它使用Robert Giesecke的UnmanagedExports库,并使用[DllExport]
导出函数。
我可以用LoadLibrary
很好地加载它,并调用它导出的函数。当我尝试使用BTMemoryModule
将其加载到内存中时,入口点(DllMain-DLL_PROCESS_ATTACH)TDllEntryProc
(在函数BTMemoryLoadLibary
中)的调用返回false。如何使用BTMemoryModule
加载这样的DLL。
LoadLibrary
、LoadLibraryEx
等来执行此任务,并且它们要求DLL存在于磁盘上。
你的DLL是一个混合模式的.net程序集,它需要加载程序进行特殊处理。通过调用LoadLibrary
、LoadLibraryEx
等调用的系统加载器知道如何执行加载混合模式.net程序集所需的操作。BTMemoryModule代码不执行这些特殊操作。
如果你想从内存中加载这样的模块,你需要找到一个支持这样的模块的库,或者编写自己的加载程序代码。坦率地说,我怀疑这样一个图书馆的存在。更现实地说,你应该从磁盘加载DLL。