C#调用C++写的Dll时的运行时错误解决

简介: 两个错误: 1. Run-Time Check Failure #0 - The value of ESP was not properly saved across afunction call.

两个错误:

 

1. Run-Time Check Failure #0 - The value of ESP was not properly saved across a
function call. This is usually a result of calling a function declared with one
calling convention with a function pointer declared with a different calling convention

 

先把dll的项目属性中C/C++->Code Generation->Basic Runtime Checks的属性改为Default

 

2. System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

查看一下你的dll中的函数,如果函数返回是采用某个局部变量,需要把这些返回的局部变量都声明为static

 

问题解决!!

目录
相关文章
|
4月前
|
C++ 数据格式
LabVIEW传递接收C/C++DLL指针
LabVIEW传递接收C/C++DLL指针
130 1
|
16天前
|
存储 C++
C++ dll 传 string 类 问题
C++ dll 传 string 类 问题
15 0
|
28天前
|
C#
C# WPF 将第三方DLL嵌入 exe
C# WPF 将第三方DLL嵌入 exe
30 0
|
29天前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
3月前
|
Java Go C#
编程语言C#、C++、Java、Python、go 选择哪个好?
我想说的是,不论选择哪种编程语言,决定选择的都是你最终的目的,做选择之前,先充分调研每一个选择项,再做选择思路就会非常清晰了。
78 3
|
3月前
|
安全 编译器 API
程序与技术分享:C#调用DLL的几种方法
程序与技术分享:C#调用DLL的几种方法
42 0
|
3月前
|
程序员 C# C++
lpszBlogName C#开发多年中途被迫改行C++但工作中又经常偷偷使用C#的C++程序员
通过AUMID解析出packageFamily,再根据PackageManager解析出安装目录 PackageManager是WinRT的类型,如何在c++中使用WinRT,请参考C++/WinRT 以下代码需要管理员权限才能运行。
|
3月前
|
Java API Android开发
Java通过JNI调用C++的DLL库
Java通过JNI调用C++的DLL库
23 0
|
4月前
|
开发框架 .NET C#
浅谈c和c++和c#之间的关系
浅谈c和c++和c#之间的关系
55 0
|
4月前
|
XML 缓存 算法
C#非强签名dll搜索顺序
C#非强签名dll搜索顺序