原文:C# OpenCVSharp使用SetMouseCallback設置回調方法,報錯"向非托管代碼傳遞委托時,托管應用程序必須讓這些委托保持活動狀態,直到確信不會再次調用它們。"

一 描述問題 當非托管代碼調用托管應用程序的委托的時候,經常會報錯 托管調試助手 CallbackOnCollectedDelegate Message 托管調試助手 CallbackOnCollectedDelegate : 對 OpenCvSharp OpenCvSharp.CvMouseCallback::Invoke 類型的已垃圾回收委托進行了回調。這可能會導致應用程序崩潰 損壞和數據丟失 ...

2019-12-05 14:28 0 352 推薦指數:

查看詳情

c# “XXX::Invoke”類型的已垃圾回收委托進行了回調。這可能會導致應用程序崩潰、損壞和數據丟失。向非托管代碼傳遞委托托管應用程序必須讓這些委托保持活動狀態直到確信不會再次調用它們。

症狀描述如下: 如果將一個委托作為函數指針從托管代碼封送到非托管代碼,並且在對該委托進行垃圾回收后對該函數指針發出了一個回調,則將激活 callbackOnCollectedDelegate 托管調試助手 (MDA)。 原因描述如下: 從其創建函數指針並將創建的函數指針公開給非托管代碼委托 ...

Wed Oct 16 20:37:00 CST 2013 1 4997
C#托管代碼非托管代碼

了解C#.NET應用程序中的托管代碼非托管代碼 當我們使用VisualStudio並使用任何支持DotNet的編程語言(如 C#、VB 等)在DotNet中創建任何exe(即控制台應用程序、窗口應用程序、類庫項目等)或 Web 應用程序(即 ASP.NET MVC、Web API ...

Mon Sep 21 20:51:00 CST 2020 0 1267
c#托管代碼非托管代碼的理解

理解托管非托管代碼的前提之下,要先了解CLR(公共語言運行庫) .Net Framework 是由彼此獨立又相關的兩部分組成:CLR 和 類庫, CLR是它為我們提供的服務,類庫是它實現的功能. .NET的大部分特性----垃圾收集,版本控制,線程管理等,都使用了CLR提供的服務 ...

Thu Oct 26 05:47:00 CST 2017 3 1967
C#如何直接調用非托管代碼

C#如何直接調用非托管代碼,通常有2種方法: 1. 直接調用從 DLL 導出的函數。 2. 調用 COM 對象上的接口方法 我主要討論從dll中導出函數,基本步驟如下: 1.使用 C# 關鍵字 static 和 extern 聲明方法。 2.將 DllImport 屬性附加到該方法 ...

Tue Jun 24 00:22:00 CST 2014 0 3015
C#基礎知識之托管代碼非托管代碼

什么是托管代碼(managed code)?   托管代碼(Managed Code)就是中間語言(IL)代碼,在公共語言運行庫(CLR)中運行。編譯器把代碼編譯成中間語言,當方法調用時,CLR把具體的方法編譯成適合本地計算機運行的機器碼,並且將編譯好的機器碼緩存起來,以備下次調用使用 ...

Fri Jul 12 23:58:00 CST 2019 0 2626
【轉,整理】C# 非托管代碼

.Net Framework 是由彼此獨立又相關的兩部分組成:CLR 和 類庫, CLR是它為我們提供的服務,類庫是它實現的功能..NET的大部分特性----垃圾收集,版本控制,線程管理等,都使用了CLR提供的服務 托管代碼 托管代碼(Managed Code)實際上就是中間語言(IL ...

Wed Aug 29 18:30:00 CST 2018 1 1152
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM