我应该链接什么库来获得WinRT的“EXTERN_C const IID IID ___ x_ABI_ *”的正确定义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该链接什么库来获得WinRT的“EXTERN_C const IID IID ___ x_ABI_ *”的正确定义相关的知识,希望对你有一定的参考价值。
Here是一些使用windows.gaming.input.h
API的原始C代码:
HSTRING gamepadClassName;
if (FAILED(WindowsCreateString(RuntimeClass_Windows_Gaming_Input_Gamepad,
HbArrayLength(RuntimeClass_Windows_Gaming_Input_Gamepad) - 1, &gamepadClassName))) {
Error("Failed to create a WinRT string reference for Windows.Gaming.Input.Gamepad class name.");
}
static IID const gamepadStaticsInterfaceID = { 0x8BBCE529, 0xD49C, 0x39E9, { 0x95, 0x60, 0xE4, 0x7D, 0xDE, 0x96, 0xB7, 0xC8 } };
if (FAILED(RoGetActivationFactory(gamepadClassName, &gamepadStaticsInterfaceID, &HbInputi_Windows_Gamepad_Statics))) {
Error("Failed to get the IGamepadStatics activation factory for Windows.Gaming.Input.Gamepad.");
}
WindowsDeleteString(gamepadClassName);
有没有办法在代码中摆脱这个gamepadStaticsInterfaceID
GUID定义?我试图使用在IID___x_ABI_CWindows_CGaming_CInput_CIGamepadStatics
标题中声明的windows.gaming.input.h
然后然后我有error LNK2001: unresolved external symbol IID___x_ABI_CWindows_CGaming_CInput_CIGamepadStatics
。我应该链接哪些lib来正确定义IID___x_ABI_CWindows_CGaming_CInput_CIGamepadStatics
?
这似乎未包含在SDK中。
通常,这将来自像uuid.lib这样的lib。但是,我没有看到任何证据表明在Windows SDK中的任何库中以这种方式提供了Windows.Gaming(或我已经发现的其他winrt类型)的IID。 win类型支持C使用,但使用非常简单。
当我明天回到办公室时,我会打开一个错误来追踪这个。目前,您唯一的选择是在您的代码中定义GUID。
本库恩(MSFT)
以上是关于我应该链接什么库来获得WinRT的“EXTERN_C const IID IID ___ x_ABI_ *”的正确定义的主要内容,如果未能解决你的问题,请参考以下文章