【问题标题】:Relative Path to DLL in Platform Invoke Statement平台调用语句中 DLL 的相对路径
【发布时间】:2010-10-03 05:05:54
【问题描述】:

我正在使用 VS 2008 开发一个使用 .dll 和 P/Invoke 的应用程序。当我使用绝对路径时,我可以成功使用 dll。例如,这确实有效:

[DllImport("C:\\myDLL.dll")] 内部静态 extern bool isReady();

这不起作用:

[DllImport("myDLL.dll")] 内部静态 extern bool isReady();

我已尝试添加参考文件夹并将 dll 添加到项目文件夹中,但均无效。我需要在其他计算机上部署此应用程序并需要确保包含此 .dll。感谢您的帮助!


当我尝试这样做时忘记提及我收到此错误:

微软视觉工作室 无法添加对“C:\Users\dlugokja\Documents\Visual Studio 2008\Projects\DinamapN.sln(1)\DinamapN\DinamapN\DinaWin.dll”的引用。请确保该文件是可访问的,并且它是一个有效的程序集或 COM 组件。 好的

【问题讨论】:

  • 当您在代码中添加路径时,请使用语法@"C:\folder\myDLL.dll" 这样您就不需要使用双斜杠

标签: c# visual-studio-2008 pinvoke


【解决方案1】:

我们在工作中使用的解决方案如下:

  1. 将 DLL 添加到您的项目中
  2. 将 DLL 的属性编辑为“内容”和“始终复制”
  3. 在您的 P/Invoke 语句中将 DLL 引用为 @"mydll.dll"

【讨论】:

    【解决方案2】:

    为什么不直接右键单击项目文件,“添加引用”并浏览到 dll?

    【讨论】:

    • 他正在使用 P/Invoke,这不是 COM PIA 或您调用托管程序集的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    相关资源
    最近更新 更多