現在、ARM プロセッサである TI OMAP プロセッサで 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;
}