静态库 C++/WinRT
Static Library C++/WinRT
我在 VS 2019 中创建了一个静态库 (c++/WinRT) 和一个通用 Windows 应用 [空白应用] (c++/WinRT) 项目。
然后从 Project Universal Window app 我添加了静态库的项目引用。
我在构建通用应用程序时遇到以下错误
D:\Dv\Main\Vib\CM\UI\UserInterfaceCppWinRT\Generated Files\XamlTypeInfo.g.cpp(178,52): error C2039: 'UIViewModelCppWinRT': is not a member of 'winrt'
单独静态库构建成功。没有获得有关 c++/winrt 静态库项目使用的任何线索。有什么建议吗?
当你将静态库的引用添加到主工程中并成功构建主工程时,可以发现在[=26]下生成了StaticLibrary.h文件=]\MyProject\MyProject\Generated Files\winrt 文件夹以及其他 Windows 命名空间。所以如果你想导入 idl(例如 Class.idl),你不需要手动导入它,因为你的工具链被设置为自动引用系统命名空间中的任何类型。您只需导入您在项目中定义的任何类型。例如:
MainPage.idl
namespace WinrtApp
{
[default_interface]
runtimeclass MainPage : Windows.UI.Xaml.Controls.Page
{
MainPage();
Int32 MyProperty;
StaticLibrary1.Class MyClass;
}
}
当你想从静态库访问属性时,首先包含头文件并初始化它。
MainPage.h
private:
StaticLibrary1::Class myclass{nullptr};
.cpp:
#include "winrt/StaticLibrary1.h"
myclass = StaticLibrary1::Class();
int property = myclass.MyProperty();
Here是我制作的一个简单示例,你可以下载它查看完整的步骤。
我在 VS 2019 中创建了一个静态库 (c++/WinRT) 和一个通用 Windows 应用 [空白应用] (c++/WinRT) 项目。
然后从 Project Universal Window app 我添加了静态库的项目引用。
我在构建通用应用程序时遇到以下错误
D:\Dv\Main\Vib\CM\UI\UserInterfaceCppWinRT\Generated Files\XamlTypeInfo.g.cpp(178,52): error C2039: 'UIViewModelCppWinRT': is not a member of 'winrt'
单独静态库构建成功。没有获得有关 c++/winrt 静态库项目使用的任何线索。有什么建议吗?
当你将静态库的引用添加到主工程中并成功构建主工程时,可以发现在[=26]下生成了StaticLibrary.h文件=]\MyProject\MyProject\Generated Files\winrt 文件夹以及其他 Windows 命名空间。所以如果你想导入 idl(例如 Class.idl),你不需要手动导入它,因为你的工具链被设置为自动引用系统命名空间中的任何类型。您只需导入您在项目中定义的任何类型。例如:
MainPage.idl
namespace WinrtApp
{
[default_interface]
runtimeclass MainPage : Windows.UI.Xaml.Controls.Page
{
MainPage();
Int32 MyProperty;
StaticLibrary1.Class MyClass;
}
}
当你想从静态库访问属性时,首先包含头文件并初始化它。
MainPage.h
private:
StaticLibrary1::Class myclass{nullptr};
.cpp:
#include "winrt/StaticLibrary1.h"
myclass = StaticLibrary1::Class();
int property = myclass.MyProperty();
Here是我制作的一个简单示例,你可以下载它查看完整的步骤。