首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Delphi调用混合模式的C# dll?

如何使用Delphi调用混合模式的C# dll?
EN

Stack Overflow用户
提问于 2015-11-04 11:03:16
回答 1查看 185关注 0票数 1

我有一个用C#编写的DLL,它使用Robert的UnmanagedExports库并使用[DllExport]导出函数。

我可以用LoadLibrary很好地加载它,并调用它导出的函数。当我试图使用BTMemoryModule将其加载到内存中时,入口点调用(DllMain - DLL_PROCESS_ATTACH) TDllEntryProc (在函数BTMemoryLoadLibary中)返回false。如何使用BTMemoryModule加载这样的DLL。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 14:44:46

不支持从内存中加载DLL。任何这样做的代码都是使用不受支持的黑客来实现的。该系统提供了LoadLibraryLoadLibraryEx等来执行这一任务,它们要求动态链接库存在于磁盘上。

您的DLL是一个混合模式的.net程序集,它需要加载程序进行特殊处理。通过调用LoadLibraryLoadLibraryEx等调用的系统加载器知道如何执行加载混合模式.net程序集所需的操作。BTMemoryModule代码不执行这些特殊操作。

如果要从内存中加载这样的模块,您需要找到一个支持此类模块的库,或者编写自己的加载程序代码。坦率地说,我怀疑这样的图书馆是否存在。更实际地说,您应该从磁盘加载DLL。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33520165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档