当前,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] 删除。
我来说两句