经过几个小时的谷歌搜索,我没有解决这个问题。
我在非托管 C++ 中开发了一个 DLL。我已将该 DLL 放在 SysWOW64 文件夹中,因为这是一台 64 位计算机。
另一方面,我有一个用 C# 开发的 Winforms 应用程序,它导入 DLL 中包含的函数。我使用 DllImport("name.dll"),但是抛出了 System.DllNotFoundException。
整个解决方案是为 x64 平台配置的。
如果我将 DLL 放在可执行目录中,它就可以工作。
由于开发简单,我希望 DLL 位于系统文件夹中。我正在两台不同的计算机(台式电脑和我的笔记本电脑)上开发这个项目。PC是32位平台,笔记本是64位,文件夹不同。
为了在两台计算机上同步项目,我使用 subversion 存储库。显然,我可以编写一个 Post Build 事件来将 DLL 从 C++ 项目文件夹复制到主可执行文件的输出文件夹,但每次从笔记本电脑移动到 PC 时,我都需要更改 Post build 命令,反之亦然。
知道为什么在系统文件夹中找不到 DLL 吗?最重要的是,有没有办法解决它?
谢谢詹姆