加载表单时 C++/CLI/C# BadImageFormat 异常

发布于 2024-08-19 21:57:54 字数 503 浏览 2 评论 0原文

我创建了一个 C++/CLI 程序集,它创建了本机 C++ 代码的包装器。当我将其添加为资源时,资源将进行编译,并且程序集可以正常加载到我的 C# 项目中。我可以从应用程序中访问我的对象和智能感知,但是在尝试构建时,它崩溃并出现异常:

BadImageFormat

无法加载文件或程序集 'MyCLI,版本=1.0.3680.28432, 文化=中立,PublicKeyToken=null' 或其依赖项之一。一次尝试 被用来加载一个程序 格式不正确。

我将它加载到我的表单加载事件中:

MyCLI.myCLI z;

... 当我编译时,它在 C# 的主构造函数中的这一行崩溃

Application.Run(new Form1());

有谁知道可能导致此异常的原因吗?

谢谢

I created a C++/CLI assembly that creates a wrapper around native C++ code. The resource compiles and the assembly loads fine into my C# project when I add it as a resource. I can access my objects and intellisense from within my application, but when attempting to build, it crashes with the exception:

BadImageFormat

Could not load file or assembly
'MyCLI, Version=1.0.3680.28432,
Culture=neutral, PublicKeyToken=null'
or one of its dependencies. An attempt
was made to load a program with an
incorrect format.

I load it into my form load event:

MyCLI.myCLI z;

... and when I compile, it crashes on this line in my main constructor in C#

Application.Run(new Form1());

Does anyone have an idea of what could be causing this exception?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七七 2024-08-26 21:57:54

您正尝试在 64 位操作系统上运行此代码。您的 C# 代码将被很好地编译为 64 位机器代码。但当它尝试加载 32 位 C++/CLI 程序集时,您就会遇到困难。

在 C# 项目中,使用“项目 + 属性”、“应用程序”选项卡、“平台目标”= x86。也可以使用 Build + Configuration Manager 创建 64 位版本的 C++/CLI 程序集。使用 Platform Target 是更好的解决方案。

You are trying to run this code on a 64-bit operating system. Your C# code will get nicely compiled to 64-bit machine code. But you'll hit the wall when it tries to load a 32-bit C++/CLI assembly.

In the C# project, use Project + Properties, Application tab, Platform Target = x86. Creating a 64-bit version of your C++/CLI assembly is possible too, use Build + Configuration Manager. Using Platform Target is the better solution.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文