gpt4 book ai didi

c# - 将 C# 应用程序的引用添加到没有/clr 编译的 DLL?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:16 26 4
gpt4 key购买 nike

我正在使用 Visual Studio 2008 构建一个包含两个项目的解决方案:一个 C# 控制台应用程序和一个 C++ DLL。我希望应用程序使用 P/Invoke 从 dll 调用函数。因此,我正在尝试将 dll 添加为对 C# 应用程序的引用。但是当我尝试添加引用命令时,Visual Studio 不会让我这样做,除非我在 dll 上设置/clr 属性(在配置属性:常规下)。现在,我认为 P/Invoke 可以处理普通的 win32 dll。事实上,如果我在没有/clr 的情况下构建我的 dll,然后手动将其复制到 bin/Debug,那么该应用程序运行良好。那么为什么需要/clr 添加 dll 作为引用呢?如果 VS 不允许我添加它,是否有一些(干净的)解决方法以便我的应用程序找到 dll?

我看到有人在这里遇到了类似的问题(尽管使用的是第 3 方 dll): Unable to add a DLL Reference to VS 2008他得到的答案是构建一个包装器。但这并不是真正必要的,因为应用程序可以很好地使用 dll;它只是不起作用的添加引用步骤。此外,包装代码是否需要对 dll 的引用,从而引发与以前相同的问题?我真的很想要一个根本不涉及编写包装器的答案。

最佳答案

为什么不添加一个构建后步骤来将非托管 DLL 复制到项目目录?您不需要“引用”即可引用非托管 DLL,听起来您遇到的唯一问题是文件未自动复制到搜索路径。

关于c# - 将 C# 应用程序的引用添加到没有/clr 编译的 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com