就像這個帖子中提到的,如果要調用C/C++ dll export出來的一個函數,並且要傳一個callback的delegate進去,就會產生一個問題: delegate默認的函數調用約定是stdcall,但是C++端一般會要求這個callback是cdecl的。這個問題在.Net 1.1中沒有好的解決方法,只能反匯編你的assembly然後手動修改對應delegate的屬性。
在.net 2.0中,可以使用UnmanagedFunctionPointer Attribute來解決這個問題。因為它可以控制delegate中函數調用的calling convention。這個在.Net CF編程中應該會比較有用,希望能夠幫助有此需求的朋友。