gpt4 book ai didi

c# - 从 C# 调用 C++ .dll 会引发运行时错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:15 24 4
gpt4 key购买 nike

以下行在 C# GUI 中生成运行时错误:

int x = myclass.number_from_dll();

我使用的是 Microsoft Visual Studio 2008。

C#中的代码是:

class myclass
{
[DllImport("strat_gr_dll.dll", EntryPoint = "number_from_dll")]
public static extern int number_from_dll();
}

C++.dll 中的代码是:

// This is an example of an exported function.

DLL int number_from_dll(void)
{
return 42;
}

.NET 的运行时错误是:

An attempt was made to load a program with an incorrect format.
(Exception from HRESULT: 0x8007000B)

最佳答案

项目 + 属性,构建选项卡,平台目标 = x86。

您的 C/C++ DLL 是在 32 位模式下编译的。但是你的 C# 程序运行在 64 位版本的 Windows 上,将以 64 位模式运行。那组合不匹配。创建 DLL 的 64 位版本是另一种解决方案。构建 + 配置管理器,平台组合,新,x64。

关于c# - 从 C# 调用 C++ .dll 会引发运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3390961/

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