【发布时间】:2016-10-08 13:36:40
【问题描述】:
我正在使用 UnmanagedExports 作者 RobertGiesecke
我想导出DllMain 入口点。
这是我尝试过的
[DllExport("DllMain", CallingConvention.StdCall)]
public static bool DllMain(IntPtr hModule, uint dwReason, byte[] lpReserved)
{
// I Write a text to file here
return true;
}
然后我打电话给LoadLibrary,但没有任何反应。有什么解决办法吗?
【问题讨论】:
-
这个非托管导出:nuget.org/packages/UnmanagedExports?
-
这是不可能的。 Giesecke 的实用程序提供导出。 DllMain() 未导出,它是 DLL 的 入口点。无法修改托管程序集的入口点,它已被使用。它调用 _CorDllMain(),CLR 需要该调用。您需要使用 C++/CLI 来执行此操作。或者一个模块初始化器,在 C# 中不支持,但可以用螺栓固定。
-
@Theraot,你好。
-
@moien 我认为 UnmanagedExport 现在没有解决方案。他们有未解决的问题Can i export a method just called 'DllMain'? - 另见Difference between DllMain and DllEntryPoint。编辑:我不知道允许这样做的替代方案。
-
@Theraot,感谢您的信息