Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#包装c++;函数并抛出access.invalition.exception 我在C++中有一个包装器,它在32位中没有任何错误。该函数检测图像中的某些内容,因此我的C#伪代码如下所示 void detect(image, detections){ detectCpp(ref image, ref detections); } 当我在64位编译代码时,它会被C++ +DLL自动捕获,但是没有检测到对象。如果我创建了一个C++函数库,它带有一个函数DeCTuCCPP桥,它调用了DeCTOSPCPP函数,并使用了新函数/库,我得到以下错误:_C#_C++_Wrapper_Access Violation - Fatal编程技术网

c#包装c++;函数并抛出access.invalition.exception 我在C++中有一个包装器,它在32位中没有任何错误。该函数检测图像中的某些内容,因此我的C#伪代码如下所示 void detect(image, detections){ detectCpp(ref image, ref detections); } 当我在64位编译代码时,它会被C++ +DLL自动捕获,但是没有检测到对象。如果我创建了一个C++函数库,它带有一个函数DeCTuCCPP桥,它调用了DeCTOSPCPP函数,并使用了新函数/库,我得到以下错误:

c#包装c++;函数并抛出access.invalition.exception 我在C++中有一个包装器,它在32位中没有任何错误。该函数检测图像中的某些内容,因此我的C#伪代码如下所示 void detect(image, detections){ detectCpp(ref image, ref detections); } 当我在64位编译代码时,它会被C++ +DLL自动捕获,但是没有检测到对象。如果我创建了一个C++函数库,它带有一个函数DeCTuCCPP桥,它调用了DeCTOSPCPP函数,并使用了新函数/库,我得到以下错误:,c#,c++,wrapper,access-violation,C#,C++,Wrapper,Access Violation,“试图读取或写入受保护的内存。这通常表示其他内存已损坏。” 调用堆栈看起来像detect-->detectCppBridge-->detectCpp: 当我将cout放入detectCppBridge时,错误不会发生,一切正常。即使我以某种方式在detectCppBridge中使用图像,比如更改一个像素,错误也不会发生 我认为C的垃圾收集器抛出了图像,C++函数想要访问它,尽管它不再存在了。我尝试将GCHandle.Alloc(image)用于普通和固定的HandleType,但没有成功。 你有

“试图读取或写入受保护的内存。这通常表示其他内存已损坏。”

调用堆栈看起来像detect-->detectCppBridge-->detectCpp:

当我将cout放入detectCppBridge时,错误不会发生,一切正常。即使我以某种方式在detectCppBridge中使用图像,比如更改一个像素,错误也不会发生

<>我认为C的垃圾收集器抛出了图像,C++函数想要访问它,尽管它不再存在了。我尝试将GCHandle.Alloc(image)用于普通和固定的HandleType,但没有成功。
你有什么建议吗

您是否尝试过将对象分配给另一个变量(在C#端)?垃圾收集不应破坏您仍在使用的任何东西。我们没有足够的信息来帮助您。我们所能做的就是猜测。我猜是你的图书馆出了问题。没有[mvce]是不可能的。