我正在从c#和非托管DLL创建一个包装器,所有这些都正常工作,除非我调用一个内部使用HeapSetInformation的函数。 HeapSetInformation每次返回0.在可视化C ++应用程序中调用的相同函数正常工作。由于某种原因,C#内部无法初始化LFH。非托管dll无法修改,我也没有源代码。有人知道如何解决这个问题?测试环境是Windows 7 x64和Visual Studio 2013 Framework 4.5
祝你好运 GMG
答案 0 :(得分:1)
这种绑定没有简单的方法。 DLL调用HeapSetInformation
是错误的。
最好的解决方案是修复DLL,或者停止使用DLL。如果这不可能,那么您可以在HeapSetInformation
上安装代码挂钩并安排它不执行任何操作,并返回TRUE
。