Re: [問題] Callback 函式 (C# 呼叫 C++ dll) (用 …
→ percyy:嗯...什麼意思? @@"
如果這程式有問題的話, 應該在runtime會有exception呀?
DllImport 不到進入點, 應該會有找不到進入點的exception,
calling converntion或參數大小不到, 應該會告訴你 stack 爛掉 的excetion
callback function pointer有誤, C/C++端呼叫時說不定會直接當掉..
或是 delegate 被GC回收了, 在debug環境下, 應該也會有exception
如果你什麼 exception都沒收到,
要不是被你自己catch起來和諧掉了, 就是C/C++那邊根本沒有呼叫該callback
推 cplusplus:基本上 unmanaged C++ 不能直接call C#的method...
這確定可以呼叫 @.@
舉個例子, 用 CreateThread() Windows API 來 create thraed,
而非使用 .NET 的 Thread Class
--
/*
* 這理是 p/invoke 相關的宣告
*/
delegate Int32 ThreadStartDelegate(IntPtr arg);
[DllImport("kernel32.dll")]
static extern IntPtr CreateThread(
IntPtr SecurityAttributes,
uint StackSize,
ThreadStartDelegate StartFunction,
IntPtr ThreadParameter, uint CreationFlags, out uint ThreadId);
/*
* 這裡是使用該 p/invoke 的 code
*/
// CreateThread 在 .NET 的 callback
Int32 MyThread(IntPtr arg)
{
Console.WriteLine("Hello World");
}
// 呼叫 CreateThread
int tid;
IntPtr h;
ThreadStartDelegate td = new ThreadStartDelegate(MyThread);
h = CreateThread(IntPtr.Zero, 0, td, IntPtr.Zero, 0, out tid);
// 這裡應該還要放個 WaitForSingleObject 等 Thread 結束....
GC.KeepAlive(td);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.66.43
→
09/16 23:32, , 1F
09/16 23:32, 1F
推
09/16 23:35, , 2F
09/16 23:35, 2F
推
09/16 23:41, , 3F
09/16 23:41, 3F
→
09/16 23:41, , 4F
09/16 23:41, 4F
→
09/16 23:42, , 5F
09/16 23:42, 5F
推
09/17 00:44, , 6F
09/17 00:44, 6F
推
09/17 00:51, , 7F
09/17 00:51, 7F
→
09/17 00:52, , 8F
09/17 00:52, 8F
→
09/17 01:03, , 9F
09/17 01:03, 9F
※ 編輯: cole945 來自: 123.204.66.43 (09/17 01:03)
→
09/17 01:03, , 10F
09/17 01:03, 10F
推
09/17 15:45, , 11F
09/17 15:45, 11F
→
09/17 15:45, , 12F
09/17 15:45, 12F
→
09/17 16:41, , 13F
09/17 16:41, 13F
→
09/17 16:41, , 14F
09/17 16:41, 14F
→
09/17 16:41, , 15F
09/17 16:41, 15F
→
09/17 16:43, , 16F
09/17 16:43, 16F
→
09/17 16:43, , 17F
09/17 16:43, 17F
推
09/29 14:25, , 18F
09/29 14:25, 18F
→
09/29 14:27, , 19F
09/29 14:27, 19F
推
10/01 08:52, , 20F
10/01 08:52, 20F
推
10/03 01:41, , 21F
10/03 01:41, 21F
→
10/03 01:42, , 22F
10/03 01:42, 22F
→
10/03 01:42, , 23F
10/03 01:42, 23F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章