作者percyy (serene ice)
看板C_Sharp
标题[问题] Callback 函式 (C# 呼叫 C++ dll)
时间Tue Sep 15 11:44:53 2009
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)
1F:推 tomex:OK的,要以符合c++为优先 09/15 16:42
2F:→ percyy:所以问题在 取得func ptr 跟 把它转成int 09/15 20:57