C# 中外部 DLL 放置在哪里?

发布于 2025-01-07 22:18:51 字数 161 浏览 1 评论 0原文

如果我通过以下方式在 C# 中引用外部非托管 DLL:

[DLLImport("MyDLL.dll",  ...

当我想从 IDE 运行代码时,该 DLL 应该放在哪里?它应该位于 bin\Debug 文件夹中吗?

If I reference an external unmanaged DLL in C# by the following:

[DLLImport("MyDLL.dll",  ...

Where should the DLL be placed when I want to run the code from my IDE? Should it be in the bin\Debug folder?

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

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

发布评论

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

评论(3

如日中天 2025-01-14 22:18:51

您正在使用哪种编译配置?

如果你想从 Visual Studio 调试/运行运行应用程序,它将位于你的项目文件夹中。

如果你想通过双击运行,它应该位于

bin\Debug

bin\Release

文件夹中的 exe 附近。

Which compiling configuration you are using?

If you want to run the application from Visual Studio Debug/Run it would be in your project folder

If you want to run by double click, it should be near your exe which is in

bin\Debug

or

bin\Release

folder.

神仙妹妹 2025-01-14 22:18:51

LoadLibrary 函数。有关详细信息,请参阅动态链接库搜索顺序 :

如果启用SafeDllSearchMode,则搜索顺序如下:

  • 加载应用程序的目录。
  • 系统目录。使用GetSystemDirectory函数获取该目录的路径。
  • 16 位系统目录。没有函数获取该目录的路径,但是会搜索。
  • Windows 目录。使用GetWindowsDirectory函数获取该目录的路径。
  • 当前目录。
  • PATH 环境变量中列出的目录。请注意,这不包括应用程序路径注册表项指定的每个应用程序路径。计算 DLL 搜索路径时不使用 App Paths 键。

bin\Debug 满足第一点,假设您仅在其 Debug 配置中运行应用程序。

Anywhere locatable by the LoadLibrary function. See Dynamic-Link Library Search Order for more information:

If SafeDllSearchMode is enabled, the search order is as follows:

  • The directory from which the application loaded.
  • The system directory. Use the GetSystemDirectory function to get the path of this directory.
  • The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
  • The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
  • The current directory.
  • The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.

bin\Debug satisfies the first point, assuming that you're only ever running the application in its Debug configuration.

£冰雨忧蓝° 2025-01-14 22:18:51

是的,除了编译器生成的 .exe 文件(如您所说,最终位于 bin\Debug\ 中)应该是完美的。

Yes, alongside the .exe file produced by the compiler (which ends up in bin\Debug\ as you said) should be perfect.

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