C#调用C++的dll报错 Attempted to read or write protected memory.Th
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 00:00:51
C#调用C++的dll报错 Attempted to read or write protected memory.This is.
之前用C++封装了一个DLL,后来开发了一个C#程序调用该DLL.
突然发现:
1:将DLL编译为“Use MFC in a Static Library”,就会出现题目报的错误
2:将DLL编译为“Use MFC in a Shared DLL“,就没有错误
谁知道是什么原因啊.是不是和函数有关系.
之前用C++封装了一个DLL,后来开发了一个C#程序调用该DLL.
突然发现:
1:将DLL编译为“Use MFC in a Static Library”,就会出现题目报的错误
2:将DLL编译为“Use MFC in a Shared DLL“,就没有错误
谁知道是什么原因啊.是不是和函数有关系.
建议动态库不要返回字符串指针.而是在参数中传递.
基本上没有见过动态库中返回字符串指针的.看看所有WIN32的API,应该是没有的
返回字符串是在C++中产生的,而C#的GC机制会试图销毁这个字符串
估计这时就出现你说的这个错误了
作为引参传递时,参数内存是以C#分配的,所以GC机制可以自动回收它的内存.
解释的可能不是很好,很简单,这个错误的意思应该 是:C#不能读写C++产生的内存.
当然,肯定有别的方法可以读写.不在本问题中了.
基本上没有见过动态库中返回字符串指针的.看看所有WIN32的API,应该是没有的
返回字符串是在C++中产生的,而C#的GC机制会试图销毁这个字符串
估计这时就出现你说的这个错误了
作为引参传递时,参数内存是以C#分配的,所以GC机制可以自动回收它的内存.
解释的可能不是很好,很简单,这个错误的意思应该 是:C#不能读写C++产生的内存.
当然,肯定有别的方法可以读写.不在本问题中了.
C#调用C++的dll报错 Attempted to read or write protected memory.Th
C#调用C++的dll总是报错 Attempted to read or write protected memory.
No memory cardinserted Or memory card write protected
不知道为什么报这样的错:Attempted to access e(10,:); index out of bounds
read memory、write memory、scratch memory定义分别是什么?
Why people like to read or write poems?
Matlab 报错为Attempted to access f(64.4); index must be a posit
the letters "write" or "read"
read and write tick or
User memory is almost full. Delete or move files to memory c
英语句子she coudnnot read or write的意思
U盘:仅完成部分的Read Process Memoty 或 Write Process Memory请求