I am writing a simple app in WinRT and would like the C++ bit to do some processing. I want to be able to pass null if the function is to ignore the parameter as an empty string means something as well as a value.
My C# code:
UnsafeNativeMethods.TestString(null);
My C++ code:
void UnsafeNativeMethods::TestString(String^ test)
{
}
I keep getting a NullReferenceException
in the System.StubHelpers.HStringMarshaler.ConvertToNativeReference
.
Is there a way to pass null to this method at all?
EDIT AGAIN
The is about all I have:
public ref class UnsafeNativeMethods sealed
{
public:
static void TestString(Platform::String^ test);
};
I just created a new Windows Phone 8 app and this is the complete exception:
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()
There is no fancy code anywhere, just the above code and a brand new project (a C# WP8 App and a WP Runtime Component project)