4

我正在用 WinRT 编写一个简单的应用程序,并希望 C++ 位进行一些处理。如果函数要忽略参数,我希望能够传递 null ,因为空字符串意味着一些东西以及一个值。

我的 C# 代码:

UnsafeNativeMethods.TestString(null);

我的 C++ 代码:

void UnsafeNativeMethods::TestString(String^ test)
{
}

我一直NullReferenceExceptionSystem.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 运行时组件项目)

4

0 回答 0