我目前正在 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;
}