Windows Phone 7.5ではMarshalAs(UnmanagedType.LPStr)が使えませんでした。実行時にNotSupportedExceptionになります。UnmanagedType.LPWStrやUnmanagedType.BStrなら平気でしたので、そちらを使えと言うことなのでしょう。
1 2 3 4 5 | [ComImport, Guid("……"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IHoge { void Foo([In, MarshalAs(UnmanagedType.LPStr)] string s); } |
宣言しただけでは大丈夫だと思います、実際にマーシャリングする段階で例外が飛んできたので。
なお、UnmanagedType.FunctionPtrやUnmanagedType.IDispatchも同様にダメでした。
スポンサード リンク |