问题描述
我正在尝试在c ++ winRT组件中使用一维数组
Class.idl
namespace MyClass
{
[default_interface]
runtimeclass Class
{
Class();
String[] aaa(String[] v);
}
}
Class.h
#pragma once
#include "Class.g.h"
namespace winrt::MyClass::implementation
{
struct Class : Classt<Class>
{
Class() = default;
hstring[] aaa(hstring[] s);
};
}
namespace winrt::MyClass::factory_implementation
{
struct Class : Classt<Class,implementation::Class>
{
};
}
Class.cpp
#include "pch.h"
#include "Class.h"
#include "Class.g.cpp"
namespace winrt::MyClass::implementation
{
hstring[] Class::aaa(hstring[] s)
{
return null;
}
}
然后它报告Class.h中的错误
Class.cpp中的更多错误
欢迎评论
更新的问题
Class.idl
namespace HTMLInterpreter
{
[default_interface]
runtimeclass Class
{
Class();
void aaa(Int32[] value);
}
}
Class.h
#include "Class.g.h"
namespace winrt::HTMLInterpreter::implementation
{
struct Class : Classt<Class>
{
Class() = default;
void aaa(int[] v);
};
}
namespace winrt::HTMLInterpreter::factory_implementation
{
struct Class : Classt<Class,implementation::Class>
{
};
}
Class.cpp
void Class::aaa(int[] v)
{
}
即使我将hstring []更改为int [],它也会报告类似的错误
解决方法
更改C ++声明以使用winrt :: array_view或winrt :: array_view。您尝试使用的语法无效。