[問題] 可否傳遞C#的delegate給 C++ 的dll ?

看板C_and_CPP (C/C++)作者時間16年前 (2010/02/24 19:36), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
我有一個project1.dll,希望能在c#程式下使用, 但是程式執行之後,總是出現AccessViolationException ("嘗試讀取或寫入受保護的記憶體") 請問我的作法問題出在哪裡呢? //--------------------------------------------- //載入dll的宣告如下: [DllImport("project1.dll", EntryPoint = "delegate_test")] public static extern void delegate_test([In,MarshalAs(UnmanagedType.FunctionPtr)] MY_CALLBACK callback ); public delegate void MY_CALLBACK(int value); //--------------------------------------------- //實際呼叫時的code: private void Form1_Load(object sender, EventArgs e) { MY_CALLBACK callback = new MY_CALLBACK( ShowState ); MYAPI.delegate_test(callback); } public void ShowState(int state) { //要傳遞給dll呼叫的函式 .... } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.164.146

02/24 19:48, , 1F
這篇比較適合發在C#板
02/24 19:48, 1F

02/24 19:48, , 2F
delegate跟callback和function point絕對不能畫上等號
02/24 19:48, 2F

02/24 19:49, , 3F
請自行到msdn查詢delegate
02/24 19:49, 3F
文章代碼(AID): #1BXGyr-a (C_and_CPP)
文章代碼(AID): #1BXGyr-a (C_and_CPP)