gpt4 book ai didi

从 C++ 托管 dll 抛出的 C# 异常 - EEFileLoadException * __ptr64

转载 作者:行者123 更新时间:2023-12-04 04:24:05 30 4
gpt4 key购买 nike

我在一个普通的 C# 控制台程序中收到此错误,该程序正在使用作为 C++ CLI 项目的构建输出生成的 DLL。我有一个带有静态方法的简单 DumbThing public ref class。我想简单地调用该函数或至少实例化一个微小的 DumbThing 对象,并看到 C# 可以调用它从 C++ CLI 生成的 DLL 中获取的代码,但它不起作用,因为它引发了一个更让我困惑的错误:

First-chance exception at 0x000007fefd2acacd (KernelBase.dll) in DumbTest.exe: Microsoft C++ exception: EEFileLoadException * __ptr64 at memory location 0x007fc228..

更新:在原始异常下方,还有另一个第一次机会异常:

First-chance exception at 0x77cace3b (ntdll.dll) in DumbTest.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff.

一位同事向我指出,这可能是一个编译时问题(某些选项),但我不知道是什么导致了它。谁能提供一些起点提示?

最佳答案

这可能是位数问题。如果您为特定平台编译了 C++/CLI 项目,请确保您的 C# 项目已相应地设置其平台。 C# 项目的默认值是“Any CPU”,这会导致 JIT 编译器在 64 位架构上生成 x64 代码。如果您的 C++/CLI 项目是为 x86 构建的,则无法将其加载到 64 位计算机上的 x64 进程中。

关于从 C++ 托管 dll 抛出的 C# 异常 - EEFileLoadException * __ptr64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11584626/

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