Неразрешенный внешний символ LNK2019 с компонентом WinRT для библиотеки на основе COM

Я использую стороннюю библиотеку COM под названием Engine в нативном компоненте WinRT, который впоследствии должен выступать в качестве оболочки для сторонней библиотеки.
В моем проекте установлены файлы Engine.lib и Engine.h для сторонних библиотек.

Я получаю LNK2019 для моего следующего файла cpp:

#include "pch.h"#include "Engine.h"
void Component::Init()
{
ComPtr<IEngine> spEngine;
Settings settings;
CreateEngine(&settings, &spEngine);
}

Код компилируется нормально, и Engine.lib настраивается в настройках проекта VS2012. Также DUMPBIN / EXPORTS для Engine.lib показывает, что CreateEngine выставлен. Я также могу использовать другие типы, определенные в Engine.h, но как только вызывается CreateEngine, возникает ошибка компоновщика:

Error   1   error LNK2019: unresolved external symbol CreateEngine@8 referenced in function "public: virtual void __cdecl

Engine.h определяет CreateEngine следующим образом:

STDAPI CreateEngine(
_In_ Settings * pSettings,
_Outptr_ IEngine **ppEngine );

Где STDAPI — это обычный макрос:

#define STDAPI   extern "C" HRESULT __stdcall

Есть идеи?

0

Решение

Разобрался с помощью Inspired: я использовал lib, собранную для ARM, с конфигурацией сборки x86. После изменения, что это связывание нормально.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]