C# 尝试在外部函数之后读取或写入受保护内存

C# 尝试在外部函数之后读取或写入受保护内存,c#,dll,C#,Dll,从dll调用函数后,此消息将出现在C#代码中 代码是这样的 function(); int i = 0; 在第二行,它说有一个类型为“System.AccessViolationException”的未处理异常。。。尝试读取或写入受保护内存如果函数是外部函数,则声明有问题。 发生这种情况是因为返回值或参数类型的大小不正确,并且从堆栈“弹出”数据时出错什么是function()?它是如何定义的?如果是外部,实际实现是否与声明一致?特别是,返回类型(void、int等)是否正确?该消息通常意味着:

从dll调用函数后,此消息将出现在C#代码中 代码是这样的

function();
int i = 0;

在第二行,它说有一个类型为“System.AccessViolationException”的未处理异常。。。尝试读取或写入受保护内存

如果函数是外部函数,则声明有问题。 发生这种情况是因为返回值或参数类型的大小不正确,并且从堆栈“弹出”数据时出错

什么是
function()
?它是如何定义的?如果是
外部
,实际实现是否与声明一致?特别是,返回类型(
void
int
等)是否正确?该消息通常意味着:堆栈失衡,或类似情况。一个很好的方法是:让
extern
方法在您承诺不返回值时返回值,或者在您说要返回值时不返回值。