Dll在同一解决方案中从 c# 项目导入到 c++ 项目
DllImport from c# project to c++ project in same solution
我有一个包含两个项目的解决方案:
- C# 控制台应用程序 (.NET Core 3.1(
- 和C++动态库 (.dll(
我需要使用DllImport
从 C# 项目调用 C++ DLL。当我提供 DLL 的完整路径时,应用程序会找到它。但是我想用相对路径替换路径,但我不知道该怎么做。
首先,使C++项目成为 C# 项目的依赖项。这可确保C++项目在 C# 项目过时时之前生成。可以在解决方案设置中设置项目依赖项。
现在我们确保 dll 始终是最新的,我们必须以某种方式将其与 C# 可执行文件放在同一个 directoy 中。我们有两个选择:
- 用于将 DLL 复制到 C# 项目的输出目录的生成后命令,或者
- 我们将两个项目的输出目录设置为同一目录。
生成后事件
我们可以简单地使用复制命令。转到"生成事件">"生成后事件"C++项目设置>并将以下命令复制到">命令行"字段:
xcopy /y "$(OutDir)*.dll" "$(SolutionDir)MY_CSHARP_PROJECT_NAMEbin$(Platform)$(Configuration)"
将MY_CSHARP_PROJECT_NAME
替换为 C# 项目的名称。我在这里使用默认路径,根据您的解决方案,您可能需要稍微调整路径。
共享构建目录
我不会推荐这个,因为你可能会遇到麻烦。
- 转到 C# 项目的项目设置中的">生成"选项卡。
- 在页面顶部,选择"调试"作为配置。
- 在页面底部,更改输出路径以匹配调试生成的C++输出目录(此目录通常与解决方案文件位于同一文件夹中(。
- 重复 2 和 3,但这次使用">发布"而不是"调试"。
相关文章:
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 如何将 CLion C++ 项目导入 Visual Studio?
- 无法将标准库导入本机 android 项目中的头文件
- Dll在同一解决方案中从 c# 项目导入到 c++ 项目
- 我可以将cocos项目导入虚幻4吗?
- 如何将 OpenMP 和 MPI 导入到大型 CLion CMake 项目中?
- 如何摆脱导入的 make 项目中的 Eclipse 索引器"Type std::... could not be resolved"错误
- 在 macOS 上的 CLion 中导入 Bazel 项目失败
- 在 C# 项目中导入C++ dll
- CLion 导入具有依赖项的现有 cmake 项目
- VS 2017 构建工具失败,出现错误 MSB4019:找不到导入的项目"D:Microsoft.Cpp.Default.props"
- 将项目导入 Android Studio 后出错
- 如何将现有的 c++ 项目导入 XCode8
- 将Qt导入到现有的Xcode项目中
- 如何将我的生成文件项目导入QtCreator
- 如何使用GUI将外部库和项目导入到我的C++项目中
- 如何从.exe项目导入代码进行单元测试
- 将C++项目导入Eclipse-重叠工作区
- 从iOS示例项目导入cpp文件时,找不到架构armv7的符号
- 当项目导入到eclipse中时,.cpp文件被转换为.cc文件