我正在用 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);
};
我刚刚创建了一个新的 Windows Phone 8 应用程序,这是完全的例外:
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 运行时组件项目)