最近、私はWindowsPhoneの開発に取り組み始めました。
Windows Phone 8ソリューションで、C言語で記述されたプロジェクトを入手しました。ダイナミックリンクライブラリ(DLL)プロジェクトを作成しましたが、正常にビルドできます。その中で、ランタイムコンポーネントプロジェクトを使用して、DLLのメソッドをUI(C#)プロジェクトに提供します。メソッドでは、いくつかのポインタパラメータがあり、Intptrオブジェクトを使用してbyte[]オブジェクトをランタイムコンポーネントプロジェクトに渡します。残念ながら、これによりプログラムがクラッシュしました。
ポインタパラメータをランタイムコンポーネントプロジェクトまたはDLLプロジェクトに渡すにはどうすればよいですか?おそらく、[Dllimort]メソッドを使用してDLLファイルをインポートできる別の方法がありますか?
どんな助けでも大歓迎です!
PS:私のソリューションの構造:
[ダイナミックリンクライブラリプロジェクト(C ++)]。dll_method(void * para);
[ランタイムコンポーネントプロジェクト(C ++)]。rc_method(Intptr p)
{ dll_method((void*)p); }
[Windows Phone 8プロジェクト(C#)]。method()
{ GCHandle g = GCHandle.Alloc(byte[], GCHandleType.Pinned); IntPtr p = g.AddrOfPinnedObject(); rc_method(p); }