gpt4 book ai didi

c# - 从 Windows CE 上的 C# 为 ARM 调用的 C++ DLL 始终返回 0

转载 作者:太空狗 更新时间:2023-10-29 22:53:43 28 4
gpt4 key购买 nike

我目前正在 TI OMAP 处理器(一种 ARM 处理器)上开发适用于 Windows CE 的应用程序。我试图简单地从 C# 调用 C++ DLL 文件中的函数,无论我使用哪种数据类型,我总是得到 0 值。这很可能是某种调用约定不匹配吗?我正在从同一个 Visual Studio 解决方案编译 DLL 和主 EXE。

C# 代码片段:

public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
byte test = LibWrap.test_return();
MessageBox.Show(test.ToString());
}
}

public class LibWrap
{
[DllImport("Test_CE.dll")]
public static extern byte test_return();
}

C++ DLL 代码片段:

extern "C" __declspec (dllexport) unsigned char test_return() {
return 95;
}

最佳答案

当我改变时它起作用了:

extern "C" __declspec (dllexport) unsigned char test_return() {
return 95;
}

extern "C" __declspec (dllexport) unsigned char __cdecl test_return() {
return 95;
}

在动态链接库代码中。为什么它在为 WinCE 编译时不假设这一点超出了我的理解范围。

关于c# - 从 Windows CE 上的 C# 为 ARM 调用的 C++ DLL 始终返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1076955/

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