场景:
我正在进行编辑:本机WinRT C++ Direct3D项目的Windows应用程序基于"Direct3D应用程序“Visual代码示例。
这必须是一个独立的DLL项目从我的Windows项目,因为我将使用我的XAML UserControl与直接X渲染在它里面,无论是在Windows8Metro应用程序和Windows版本的应用。
问题:
我不能在C++ Windows应用程序项目中引用C#项目。Visual拒绝使用以下文字:
A reference to <project-name> could not be added.我看到了使用C++标志编译/clr项目的建议,但这与以下内容不兼容:
因此,在这种情况下,/clr标志似乎不是一个选项。
问题:
如何引用C++项目,以便在C# Windows应用程序项目中使用XAML直接X呈现程序?还是有更好的选择?
提前谢谢。
发布于 2012-12-28 10:36:13
我通过将C++项目重新创建为Windows Runtime Component项目解决了这个问题。我最初是从Class Library (Windows Store apps)模板创建项目的。它必须是Win RT模板有一些配置设置,使它能够工作。
在进行此更改后,可以将项目添加为C#项目中的引用。
正是因为@ answer 1610015的回答,我才意识到我实际上是在开发本地Win RT代码,而不是托管代码,这导致我尝试了这个解决方案--谢谢!
发布于 2012-12-25 09:40:00
/ZW标志用于C++/CX项目。C++/CX的语法与托管C++ (C++/CLI)几乎相同,只是C++/CX是完全非托管的。这可能是让您认为您正在开发托管C++的原因,而实际上您没有这样做。
我没有使用C++/CX,但据我所知,Windows运行时类是COM类。因此,我认为您可以使用Windows中的TlbImp.exe工具从非托管DLL创建托管DLL,然后可以从C#项目中引用该DLL。试一试,让我知道它是否有效。
另一种选择是在没有C++/CX的情况下与Windows运行时对话。虽然C++/CX使Windows运行时编程更加容易,但严格来说并不是必要的。您还可以使用WRL库。因为WRL库是纯C++,所以它也应该可以从C++/CLI中使用。
https://stackoverflow.com/questions/14028713
复制相似问题