Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 我们能用C++/静态库中的Cx(Metro样式)_Windows_Windows Runtime_C++ Cx_Microsoft Metro - Fatal编程技术网

Windows 我们能用C++/静态库中的Cx(Metro样式)

Windows 我们能用C++/静态库中的Cx(Metro样式),windows,windows-runtime,c++-cx,microsoft-metro,Windows,Windows Runtime,C++ Cx,Microsoft Metro,我正在尝试将本机sdk移植到windows RT,为了帮助我,我想实现缺少的函数来模拟注册表访问,因此我创建了一个静态库(文件->新建->项目…->静态库(Metro样式的应用程序),并声明了如下函数: //WinRT的东西 #包括 #包括 #包括 使用名称空间Microsoft::WRL; 使用名称空间Microsoft::WRL::Wrappers; 使用名称空间ABI::Windows::Storage; 使用名称空间ABI::Windows::Foundation; 伊斯塔斯 蜂房 Re

我正在尝试将本机sdk移植到windows RT,为了帮助我,我想实现缺少的函数来模拟注册表访问,因此我创建了一个静态库(文件->新建->项目…->静态库(Metro样式的应用程序),并声明了如下函数:

//WinRT的东西
#包括
#包括
#包括
使用名称空间Microsoft::WRL;
使用名称空间Microsoft::WRL::Wrappers;
使用名称空间ABI::Windows::Storage;
使用名称空间ABI::Windows::Foundation;
伊斯塔斯
蜂房
RegOpenKeyExW(
_在香港,
_在_opt_ucwstrlpsubkey中,
_在“选择”中,
_在uu REGSAM sam,
_Out_uuphkeyphkresult
)
{
LSTATUS ret=错误\成功;
如果(hKey==NULL)
返回错误\u无效\u句柄;
if(phkResult==NULL)
返回错误\无效\参数;
ABI::Windows::Storage::ApplicationDataContainer^localSettings=
ApplicationData::Current->LocalSettings;
...
}
但是,当我尝试编译时,会出现以下错误:

1>c:\users\joe\documents\visual studio 2012\projects\lib1\lib1\oal.cpp(275): 
  error C3699: '^' : cannot use this indirection on type 
  'ABI::Windows::Storage::ApplicationDataContainer'

我已检查并使用Windows运行时扩展(
/ZW
)已启用(默认情况下)所以我想知道在静态的LIB中是否可以使用C++/Cx?

< P>如果你在你的类型上使用ABI前缀,那么你是指低级C++类型。低级别的类型是用WRL使用的,不能使用像C++操作符一样的C++ +CX扩展。

使用COMPTR LoopSt设置代替.< /P> < P>如果您在类型上使用ABI前缀,则指的是低级C++类型。低级别类型是用于WRL的,不能使用像C++运算符那样的C++/CX扩展。


使用ComPtr localSettings代替。

确定有人告诉我添加Library->General->Additional Dependencies:%(Additional Dependencies),我已经删除了ABI::namespace。现在它可以工作了;-)

确定有人告诉我添加Library->General->Additional Dependencies:%(Additional Dependencies),我已经删除了ABI::namespace。现在它工作了;-)

谢谢,但我不想使用WRL,因为它太冗长了,我已经在使用ComPtr和com接口了。我想要的是使用C++/Cx。那么您不应该使用ABI::,这只是用于WRL场景。#include谢谢,但我不想使用WRL,因为它太冗长了,我已经在使用ComPtr和com接口了。我想要的是使用C++/Cx。那么您不应该使用ABI::,这只是用于WRL场景。“包括”也是如此