[問題] 可否傳遞C#的delegate給 C++ 的dll ?
我有一個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
02/24 19:48, 1F
→
02/24 19:48, , 2F
02/24 19:48, 2F
→
02/24 19:49, , 3F
02/24 19:49, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章