初めて投稿させていただきます。
C# から DLL(ネイティブ C++) の関数を呼び出す時、引数に CWnd のポインタが指定されている場合、C# からどのように呼び出せばいいのでしょうか?
C# 内で CWnd* にキャストすることは可能でしょうか?
DLL 関数
c++
1 2#ifdef AAA_EXPORTS 3#define AAA __declspec(dllexport) 4#else 5#define AAA __declspec(dllimport) 6#endif 7 8extern "C" { 9 AAA void WINAPI xxx(CWnd* pWnd); 10}
C# 側
c#
1public unsafe void fun() 2{ 3 System.IntPtr hWnd = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle; 4 xxx(hWnd); 5}
エラーメッセージ
追加情報: 保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
よろしくご教授のほどお願い致します。
(編集しました)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/06 00:36