如何解决使用Microsoft接口定义语言处理一维数组
我正在尝试在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。您尝试使用的语法无效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。