【问题标题】:Problem running a C# Console App with CLR wrapped C++ code使用 CLR 包装的 C++ 代码运行 C# 控制台应用程序时出现问题
【发布时间】:2020-06-03 13:19:03
【问题描述】:

我遵循了这个教程:How to create a CLR Wrapper of C++ for using in C#
我的项目构建没有问题,我使用与教程相同的代码。

我正在尝试运行最终的 C# 控制台应用程序。 (双击生成的 c#.exe 文件)
它显示一个错误,而不是预期的控制台输出“4.1”:

有人知道为什么会这样说吗?:
未处理的异常。 System.BadImageFormatException: 无法加载文件或程序集“Clrcs,版本=1.0.7354.20945,文化=中性,PublicKeyToken=null”。 试图加载格式不正确的程序。 文件名:'ClrCs,版本=1.0.7354.20945,文化=中性,PublicKeyToken=null' 在 Cs.Program.Main(String[] args)

我的解决方案中的所有 3 个子项目:
- 设置为目标 .NET Core
- 为 x86 构建为 Debug
- 有必要的参考资料。

我为什么要尝试实现这一目标/我的问题是否有更好的解决方案?:
我想使用我的 SFML|OpenGL|C++“引擎”,使用 JavaScript 上运行的软件中的数据绘制 3D 对象。
我发现这个软件可以连接到它的 .js 文件中的 C# .dll,所以我是试图将我的非托管“引擎”作为 .dll 包装到 C# 中。

我已经知道可以从 dll 打开渲染窗口。
我在 C++ 控制台应用程序中进行了尝试,在其中我将“引擎”作为 .dll 导入。
接下来,我只需要将 CLR Wrapper 作为 .dll 导入 C# 应用程序,上述教程对此进行了解释, 但运行 .exe 文件时出现问题。我不知道为什么。

简而言之:
[SFML|OpenGL]C++ as .dll >into> C++/ CLR Wrapper as .dll >into> C# as .exe

你能帮帮我吗?有什么办法吗?

【问题讨论】:

    标签: javascript c# c++ clr sfml


    【解决方案1】:

    问你这个问题却没有确保这个选项被保存,我觉得很傻。

    我找到了解决方案:
    在 C# 项目属性 -> 构建 -> 平台目标 -> 更改 AnyCPU x86。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多