【发布时间】:2015-03-12 09:56:19
【问题描述】:
目前我正在开发一个 WinRT dll 组件,使用原生 C++ 来渲染 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++ 编写)中使用,并摆脱“公共成员的签名包含本机类型”
我不喜欢生成一个额外的 c++ dll 来进行我的 WinRT 组件使用的计算
对此主题的任何帮助将不胜感激:-)
【问题讨论】:
标签: c# c++ dll windows-runtime interop