4

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ランタイムコンポーネントプロジェクト)だけです。

4

0 に答える 0