C#调MFC dll的测试程序,返回值不对,大侠帮忙解决下
程序流程:
C#按钮响应函数:
DLL.dll mdll = new dll();
bool flag = mdll.Test(false);
if (flag)
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("flase");
}
C#接口:
using System.Runtime.InteropServices;
namespace DLL
{
class dll
{
[DllImport("Test.dll", EntryPoint = "test")]
private static extern bool dll_test(bool param);
public bool Test(bool param)
{
bool pm = dll_test(param);
return pm;
}
}
}
MFC源码:
#pragma once
#include "stdafx.h"
#define API extern "C" _declspec(dllexport)
API bool test(bool param)
{
bool revalue = param;
return revalue;
}
步进调试时,MFC: revalue的值为false,但跑到C#接口后,pm的值为true,最后C#按钮里的flag值也为true。
不管C#里按钮的param是true还是false,返回值都是true,这个问题怎么解决啊?
百度说变量类型,参数带入的问题导致dll函数调用不成功,但我这个工程里的变量类型和参数都比较简单,只有bool变量啊,而且程序也进了dll,且执行正确。搞不明白了,兄弟们指导下啊,谢谢,拜托了!!