1

我有一个 C++ WinRT 组件,我想从另一个组件中使用它,这两个组件都在监督整个业务的 C# 类中使用。C# 类将 C++ 类 A 传递给 C++ 类 B 的引用,而 C++ 类 A 可以使用 B 的方法进行编译,但链接对我很生气:

CameraTextureGraphConnector.obj : error LNK2019: unresolved external symbol "public: void __cdecl TextureGraph::TextureRenderer::setTexturePtr(unsigned int,unsigned int,unsigned int)" (?setTexturePtr@TextureRenderer@TextureGraph@@Q$AAAXIII@Z) referenced in function __unwind$5

本质上,我试图链接一个单独的 .dll 中的某些内容,但我不知道如何连接这些点。尝试与 .lib 链接在这里不起作用,因为其他 C++ 组件需要生成一个 .dll 以供 C# 使用。我已经尝试在项目属性中添加另一个项目作为参考,但这似乎没有任何效果,并且任何尝试使用该参考页面中的参数都会导致默认值在您加载后立即加载点击“应用”。

有没有人有将这些对象连接在一起的经验?谢谢!

4

1 回答 1

1

我想到了。首先,您不应该#include.h 来自其他 WinRT 对象的文件,您只需在项目设置中添加它们对您项目的引用,如上所述。其次,您必须将希望从外部使用的所有类声明为public类,例如:

public ref class TextureRenderer sealed {
    ...
}

相对于:

ref class TextureRenderer sealed {
    ...
}
于 2013-02-07T08:32:32.837 回答