WinRTで簡単なアプリを作成していますが、C++ビットで処理を実行したいと考えています。空の文字列は値だけでなく何かも意味するため、関数がパラメータを無視する場合はnullを渡せるようにしたいと思います。
私のC#コード:
UnsafeNativeMethods.TestString(null);
私のC++コード:
void UnsafeNativeMethods::TestString(String^ test)
{
}
私はで取得し続けNullReferenceException
ますSystem.StubHelpers.HStringMarshaler.ConvertToNativeReference
。
このメソッドにnullを渡す方法はありますか?
もう一度編集
私が持っているのはこれだけです。
public ref class UnsafeNativeMethods sealed
{
public:
static void TestString(Platform::String^ test);
};
新しいWindowsPhone8アプリを作成しましたが、これは完全な例外です。
System.ArgumentNullException: Value cannot be null.
at System.StubHelpers.HStringMarshaler.ConvertToNativeReference(String managed, HSTRING_HEADER* hstringHeader)
at WindowsPhoneRuntimeComponent1.UnsafeNativeMethods.TestString(String test)
at PhoneApp2.MainPage..ctor()
派手なコードはどこにもありません。上記のコードとまったく新しいプロジェクト(C#WP8アプリとWPランタイムコンポーネントプロジェクト)だけです。