无法添加对WINRT C DLL项目的参考
Could not add reference to WinRT C++ DLL project
方案:
我正在基于" Direct3D App" Visual Studio Code示例的Windows Store应用程序进行[编辑:本机Winrt] C Direct X DLL项目。
这一定是我的Windows Store应用程序项目的单独的DLL项目,因为我将在Windows 8 Metro App中使用Direct X Renderer的Xaml UserControl和该应用程序的Windows Phone版本。
问题:
我无法在C#Windows Store应用程序项目中引用C 项目。Visual Studio拒绝以下单词:
A reference to <project-name> could not be added.
我已经看到了使用/CLR标志编译C 项目的建议,但这与:
不兼容:- 项目中某些API要求的/ZW标志
- " WR.H"标题
- 项目设置中的许多其他命令行标志
因此,在这种情况下,/clr标志似乎不是一个选择。
问题:
如何参考C 项目,以便可以在C#Windows Store应用程序项目中使用XAML Direct X Renderer?还是有更好的选择?
预先感谢。
我通过将C 项目重新创建为Windows Runtime Component
项目来解决问题。我最初是通过Class Library (Windows Store apps)
模板创建了项目的。Win RT模板必须具有一些配置设置,从而使其起作用。
进行此更改后,可以在C#项目中添加该项目作为参考。
由于 @user1610015的答案,我意识到我实际上正在开发本机赢RT代码,而不是托管代码,这使我尝试了此解决方案 - 谢谢!
/zw 标志适用于C /CX项目。C /CX在语法中几乎与托管C (C /CLI)几乎相同,只是C /CX完全不受管理。这可能是您认为您正在开发管理的C 的原因,而实际上您不是。
我尚未使用C /CX,但是根据我所听到的,Windows Runtime类是COM类。因此,我认为您可以从Windows SDK使用 tlbimp.exe 工具来从未管理的DLL中创建托管DLL,然后您可以从C#项目中引用。尝试一下,让我知道它是否有效。
另一个选择是与没有C /CX的Windows运行时交谈。虽然C /CX使Windows运行时编程变得容易得多,但这并非严格必要。您也可以使用WRL库。由于WRL库是纯C ,因此它也应从C /CLI中使用。
- 从现有源创建 MS Visual C++ DLL 项目
- 如何从 DLL 项目调用 C# 项目函数C++
- 无法添加对WINRT C DLL项目的参考
- DLL项目应该是跨平台使用的类型
- DLL 项目上的 VC++ 编译错误
- 在Visual Studio 2010的dll项目中包括Qt工具
- 如何在 win32 中使用 ActiveX dll C++项目 Visual Studio 2010
- DLL 项目中C++未解析的外部符号
- 尝试在与我的 EXE 项目相同的解决方案中引用 DLL 项目时,出现错误"无法打开包含文件:"iostream"
- 在 Visual Studio 2015 的 dll 项目中包括自己的资源文件时出现链接器错误Microsoft
- 更改 dll 项目的输出目录
- 在 DLL 项目中使用 STL C++
- 其中是调试信息(断点等)存储在本机C++dll项目VS2013中的位置
- 在碳化物2.7中调试exe和dll项目
- 将外部dll项目用于Excel的c++/xll加载项
- MinGW DLL项目与linux的兼容性
- 如何在visual studio中获得DLL项目来更新每个构建的c++项目
- 如何将c++ dll项目添加到Visual Basic引用中
- 在DLL项目中定义了具有Cryptopp_DEFAULT_NO_DLL的LNK1104 Cryptopp.lib
- Windows上的DLL项目:未解析的外部符号