【发布时间】:2013-03-04 09:59:58
【问题描述】:
我正在使用 .NET (C#) dll 中的 pinvoke 调用本机 dll。现在我想将我的 .NET dll 编译为“AnyCPU”,但是当“pinvoking”时,我必须知道我是否必须调用 32 位或 64 位 dll。我将本机 dll 的两个版本都安装到子文件夹 bin32 和 bin64 中。现在,当我的 DLL 被加载时,我想检查一下我们是处于 32 位模式还是 64 位模式,并使用适当的路径调用 SetDllDirectory。这种方法似乎没有问题,除了从哪里调用 SetDllDirectory 的一个很好的“入口点”。在本机 DLL 中有一个 DllMain 条目,当 DLL 附加到进程时会调用该条目。 .NET DLL 中是否有类似的入口点? 你觉得动态调用 SetDllDirectory 是个好主意吗?
【问题讨论】: