WinRT组件中C ++类之间的互操作

米尔豪斯

当前,iam使用本机C ++处理WinRT dll组件以渲染Directx,并且喜欢在C#项目中使用此组件。

想法是让一个类(例如A)来绘制图形并将相关的公共方法公开给WinRT。一切正常。但是,现在我需要在dll项目中使用公共方法中用户定义类型的帮助程序类(B)。该帮助程序类仅需要在dll组件内可见,并且仅由A用作私有成员。不幸的是,此类B也暴露给WinRT,这意味着我不能在公共方法中使用用户定义的类型/类。简而言之,我喜欢做这样的事情:

    public ref class A sealed
    {
        public:
            void addRenderData(float ...);

        private:
        B helper;
        ...
    }

    class B
    {
        public:
            void addMeasurement(MyOwnStruct* m);
            AnyC++Type doSomething();
        private:
        ...
    }

是否可以以某种方式声明我的助手类B,使其只能在dll程序集(完全用C ++编写)中使用,并摆脱“公共成员的签名包含本机类型”

我不喜欢生成用于WinRT组件使用的计算的附加c ++ dll的想法

任何有关此主题的帮助将不胜感激:-)

米尔豪斯

好的,我明白了……确实非常简单,只需使用内部关键字即可!我以前尝试使用此关键字解决此问题,但是只能在类级别解决,因为它是本机c ++类,因此无法实现。无论如何,当您对成员使用internal时,一切都很好:

internal:
    list<Line>* getRenderPoints();

现在只有我的DirectX组件作为WinRT的控件公开,在这之后,我可以在不同的c ++本机类中很好地实现逻辑

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以将“操作”添加到 winrt 组件中的运行时类吗

Angular Typescript UWP无法使用C#WinRT组件类

C和C ++原子之间的互操作性

如何在C#和C ++之间互操作

Picocli命令中的注射与Micronaut之间的互操作性

C#和Java之间的互操作性RSA

Boost与C ++ 11之间的互操作性

C#互操作:固定与MarshalAs之间的不良互动

C ++和C#与Crypto之间的加密互操作性

Scala.js中的js和scala函数之间的互操作

互操作-在Word中的粘贴表之间放置空白行

如何在 Rust 中创建不同 Future 特征之间的互操作性?

在ASP.NET MVC和Oracle DB(12c)之间进行互操作

处理Java和C#REST API之间的JSON互操作

在默认类型和 C 互操作类型之间转换 Fortran 字符和逻辑数组

Swift / Obj-C互操作:防止桥接基础类?

如何从C ++和COM互操作性访问.NET类的属性

Flutter audio_service 插件:错误:JS 互操作类“MediaMetadata”与“dart:html”中本机支持的类“MediaMetadata”冲突

在单独的类Java中操作组件

与GetNamedPipeClientComputerName的C#互操作

MsiSourceListEnumSources互操作C#

C ++ / WinRT Windows运行时组件中的继承

在JDK 8中,Nashorn与新的JSON-P(javax.json)API之间是否有计划的互操作性?

cljs Om与React组件互操作吗?

在C ++ cx中WinRT HttpBufferContent和非托管内存之间进行转换

组件之间的Redux共享操作

如何在python中实现内置对象与创建的类之间的操作?

C#中的Excel互操作中的HRESULT代码

C和C ++中类型的互操作性