【问题标题】:Dll import path . how to get dll path which located in other folderdll导入路径。如何获取位于其他文件夹中的dll路径
【发布时间】:2011-11-29 20:04:29
【问题描述】:

我的 Project1 在这里 \Project1\Bin\Debug\application.exe 我的 dll 在 \Project1\Debug\3rdparty.dll

如何在我的代码中获取包含此 dll 的路径?

[DllImport("????????/3rdparty.dll")]

我应该在问号处写什么 (?????) 我的解决方案包括里面的其他 c++ 项目。因此,每当我编译 c++ 项目时,它都会刷新 project1\Debug 中的 dll(有些我不熟悉 c++) 我需要在 DllImport [Path] 中使用该 dll。 如果我尝试添加参考,它会给我错误。 这可能是一个非常简单的问题,但由于某种原因我无法解决。

Hans Pasant 在评论区回答:

将 C++ 项目中的输出目录设置更改为 $(SolutionDir)bin\$(ConfigurationName),以便本机 DLL 最终与托管程序位于同一文件夹中。只需在 C# 代码中使用 [DllImport("3rdparty.dll")]。 ——汉斯·帕桑特

【问题讨论】:

  • 将 C++ 项目中的输出目录设置更改为 $(SolutionDir)bin\$(ConfigurationName),以便本机 DLL 最终与托管程序位于同一文件夹中。只需在 C# 代码中使用 [DllImport("3rdparty.dll")]。
  • 它有效。谢谢汉斯。
  • 如果有效,请接受答案作为解决方案。这可能对阅读此主题的其他社区成员有益

标签: c# winforms


【解决方案1】:
  1. 在“解决方案资源管理器”中,右键单击“参考”。
  2. 点击“添加参考”。
  3. 选择“浏览”选项卡并选择您的 3rdparty.dll。
  4. 添加后,右键单击“References”下的 3rdparty.dll 并将“Copy Local”更改为 true。
  5. 然后像正常[DllImport("3rdparty.dll")] 一样指定你的 DllImport

仅当它是 .NET 程序集时才有效。由于看起来您使用的是 C++ DLL,因此您需要查看 Using C++ Class DLL in C# Application

【讨论】:

  • 我已经尝试过了,但收到错误消息“无法添加对 dll 的引用”
  • 见这里:stackoverflow.com/questions/3456758/…。只有 .Net 程序集可以作为参考添加。
  • 感谢您的信息。我不仅可以将 .NET 程序集添加为参考。
猜你喜欢
  • 1970-01-01
  • 2014-03-07
  • 2015-09-25
  • 2015-03-03
  • 2012-01-26
  • 2012-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多