Pinvoke - Win32 DLL 的位置
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只要 DLL 存在于应用程序使用的路径上的某个位置,它就应该正确加载。您在此处描述的方法之所以有效,是因为以下特征:System32 始终位于路径中。
以下是有关如何定位 DLL 的更多信息正在加载。您的应用程序可以通过以下方式知道自己的路径
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
请不要将其放在 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.