WinRT 组件内C++类之间的互操作
Interop between C++ classes inside an WinRT component
目前我正在使用本机C++来渲染 directx 的 WinRT dll 组件,并且喜欢在 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++ 编写)中使用并摆脱"公共成员的签名包含本机类型"
我不喜欢生成一个额外的 c++ dll 来执行我的 WinRT 组件使用的计算的想法
有关此主题的任何帮助将不胜感激:-)
好的,我知道了...确实非常简单,只需使用内部关键字!我之前尝试过用这个关键字解决这个问题,但仅限于类级别,这是不可能的,因为它是一个本机 c++ 类。无论如何,当您使用内部成员时,一切都很好:
internal:
list<Line>* getRenderPoints();
现在只有我的 DirectX 组件作为控件公开给 WinRT,在此之后,我可以在不同的 c++ 本机类中很好地实现逻辑
相关文章:
- 如何读取 C++ SAFEARRAY**,该 SAFEARRAY** 是 COM 互操作的结果,其中 C# 返回值为
- 编译为 wasm 的 C++ 和 Rust 程序可以以某种方式互操作吗?
- 有什么语言可以与C++互操作吗
- 使 Flutter C/C++ 互操作示例正常工作
- C++互操作(隐式 PInvoke)的限制
- COM 互操作结构定义与内存布局不匹配
- 我是否应该避免在循环中的常数之间进行操作
- _Complex 和 std::complex 之间的 C/C++ 互操作
- C# COM 服务器互操作 - System.InvalidCastException.
- 从C++与 C 灵活阵列成员互操作的正确方法是什么?
- 如何通过 COM 互操作访问复杂对象的属性?
- 如何区分"QObject"的亲子关系关注点,例如与其他所有者进行互操作?
- DirectWrite GDI 互操作:使用"IDWriteFontFace"绘制文本的简单方法
- opencl openGL互操作内核参数用于读取 写入
- 是整数舍入规则决定了 C++、python3 和 python2.7 之间的 % 操作差异吗?
- 两个 UShorts 之间的操作在 VC2015 中给出了一个 int
- 开放MP;嵌套循环之间的操作
- WinRT 组件内C++类之间的互操作
- 如何在c#和c++之间进行互操作
- FlasCC:Vector 之间的互操作。<Number> 和双倍[]