首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问一个关于C#调用非托管函数后返回值的读取有关问题

2012-02-13 
请教一个关于C#调用非托管函数后返回值的读取问题非托管的函数定义如下:extern C{long _declspec(dllexp

请教一个关于C#调用非托管函数后返回值的读取问题
非托管的函数定义如下:
extern "C"
{
long _declspec(dllexport) Check(char* number)
{
  return 1;
}
}
C#中对该函数的定义如下:
[DllImport("Check.dll")]
public static extern long Check(string number);

然后在C#中执行Check()函数后,获得的返回值始终不是1,是不是在C#中返回值的定义还是用MarshAs之类的?

[解决办法]
你返回的是什么值?是不是一个固定值啊。把public static extern long Check(string number); 
改成public static extern int Check(byte[] number); 看看

[解决办法]
long ---> int

热点排行