[問題] Callback 函式 (C# 呼叫 C++ dll)
dll 部份
 ̄ ̄ ̄ ̄
int __stdcall SKQuoteLib_AttachConnectionCallBack( [in]long lCallBack )
// lCallBack 帶入 Call back 的函式位址。當狀況發生時即可呼叫此函式進行處理
C# 部份
 ̄ ̄ ̄ ̄
[DllImport("SKQuoteLib.dll")]
extern static int SKQuoteLib_AttachConnectionCallBack( int lCallBack );
 ̄ ̄
static void CBFunc_AttachConnection( int nKind, int nCode )
{
Console.WriteLine("haha");
}
static void Main(string[] args)
{
SKQuoteLib_AttachConnectionCallBack( 這裡 );
}  ̄ ̄
問題
 ̄ ̄
所以我現在需要丟入 CBFunc_AttachConnection 的 Function Pointer
一定要透過 delegate 來做嗎? 還是有什麼方法可以直接取得?
我看到的 C++ 範例程式碼 直接丟入 (long)CBFunc_AttachConnection 就行了 Orz
另外就是 C++ 的 long 是 32-bit
C# 的 long 是 64-bit
所以我在 dllimport 那邊 lCallBack 是用 int 型態 這樣 OK 嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.91.117
※ 編輯: percyy 來自: 114.32.91.117 (09/15 11:45)
推
09/15 16:42, , 1F
09/15 16:42, 1F
→
09/15 20:57, , 2F
09/15 20:57, 2F