我可以将 'operations' 添加到 winrt 组件中的运行时类吗
Can I add 'operations' to runtimeclass in a winrt component
在下面的代码中,"RuntimeMethod1()"是一个操作。它不接受任何输入参数,也不返回任何结果。
运行时是否允许这种方法class?
我收到此运行时的编译错误 class。它说
expecting an identifier near "(" at line 7
namespace UniversalRuntimeComponent
{
[default_interface]
runtimeclass Class
{
Class();
RuntimeMethod1();
Int32 RuntimeMethod2(Int32 arg1);
String RuntimeMethod3(String arg1);
}
}
If I remove "RuntimeMethod1()" from the class then it compiles fine and generates the projection and implementation types.
如果没有 return 结果,则使其 return 类型无效。
将 IDL 中的第 7 行更改为以下内容:
void RuntimeMethod1();
然后从自动生成的 .h 文件中复制并粘贴方法,或者手动添加它。
除构造函数外,MIDL 3.0 need to declare a return type. The documentation has the following to say on methods中的所有方法:
A method has a (possibly empty) list of parameters, which represent values or variable references passed to the method. A method also has a return type, which specifies the type of the value computed and returned by the method. A method's return type is void
if it doesn't return a value.
您必须将 MIDL 更改为以下内容:
namespace UniversalRuntimeComponent
{
[default_interface]
runtimeclass Class
{
Class();
void RuntimeMethod1();
Int32 RuntimeMethod2(Int32 arg1);
String RuntimeMethod3(String arg1);
}
}
请注意,在 MIDL 中声明的数据类型遵循 MIDL 规范。这与 Windows 运行时类型系统并不严格相关,尽管所有 MIDL 数据类型都映射到可以在 Windows 运行时类型系统中表示的数据类型。
另请注意,Windows 运行时中的 所有 方法在 ABI 中至少有一个 return 值。在 MIDL 中使用 void
声明的方法仍将 return 一个 HRESULT
来传达错误或成功。
在下面的代码中,"RuntimeMethod1()"是一个操作。它不接受任何输入参数,也不返回任何结果。 运行时是否允许这种方法class?
我收到此运行时的编译错误 class。它说
expecting an identifier near "(" at line 7
namespace UniversalRuntimeComponent
{
[default_interface]
runtimeclass Class
{
Class();
RuntimeMethod1();
Int32 RuntimeMethod2(Int32 arg1);
String RuntimeMethod3(String arg1);
}
}
If I remove "RuntimeMethod1()" from the class then it compiles fine and generates the projection and implementation types.
如果没有 return 结果,则使其 return 类型无效。
将 IDL 中的第 7 行更改为以下内容:
void RuntimeMethod1();
然后从自动生成的 .h 文件中复制并粘贴方法,或者手动添加它。
除构造函数外,MIDL 3.0 need to declare a return type. The documentation has the following to say on methods中的所有方法:
A method has a (possibly empty) list of parameters, which represent values or variable references passed to the method. A method also has a return type, which specifies the type of the value computed and returned by the method. A method's return type is
void
if it doesn't return a value.
您必须将 MIDL 更改为以下内容:
namespace UniversalRuntimeComponent
{
[default_interface]
runtimeclass Class
{
Class();
void RuntimeMethod1();
Int32 RuntimeMethod2(Int32 arg1);
String RuntimeMethod3(String arg1);
}
}
请注意,在 MIDL 中声明的数据类型遵循 MIDL 规范。这与 Windows 运行时类型系统并不严格相关,尽管所有 MIDL 数据类型都映射到可以在 Windows 运行时类型系统中表示的数据类型。
另请注意,Windows 运行时中的 所有 方法在 ABI 中至少有一个 return 值。在 MIDL 中使用 void
声明的方法仍将 return 一个 HRESULT
来传达错误或成功。