Pinvoke - Win32 DLL 的位置

发布于 2024-09-25 17:20:53 字数 92 浏览 2 评论 0原文

我在 win32 DLL 上使用 PInvoke,目前已将其放置在 System32 文件夹中。有替代方案吗?如果我的应用程序需要部署在我无权访问系统文件夹的地方怎么办?

I use PInvoke on a win32 DLL and i've currently placed it in my System32 folder. Is there an alternative to this? What if my app needs to be deployed somewhere where i dont have access to system folders?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

驱逐舰岛风号 2024-10-02 17:20:53

只要 DLL 存在于应用程序使用的路径上的某个位置,它就应该正确加载。您在此处描述的方法之所以有效,是因为以下特征:System32 始终位于路径中。

以下是有关如何定位 DLL 的更多信息正在加载。您的应用程序可以通过以下方式知道自己的路径

System.Environment.GetEnvironmentVariable("Path");

So long as the DLL is present somewhere on the Path that is used by the app, it should get loaded properly. The approach you have described here works because of this trait: System32 is always in the path.

Here is some more info on how DLLs are located for loading. Your app can know its own path via

System.Environment.GetEnvironmentVariable("Path");
千里故人稀 2024-10-02 17:20:53

请不要将其放在 System32 中。您将使安装变得比需要的更加复杂。只要将它放在与exe相同的文件夹中即可。将 System32 保存为系统的东西。

Please don't put it in System32. You will make your install more complicated than it needs to be. Just put it in the same folder as the exe. Save System32 for, you know, system stuff.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文