ССЫЛКА 2019 Неразрешенный внешний символ "CaptureUiThreadContext" при добавлении.then() в асинхронный код cpp

Эй, у меня очень неприятная ошибка.

У меня есть приложение C++ для Windows Phone 8, и я пытаюсь использовать StreamSocket.

Прежде чем я объясню, вот код, который вызывает ошибку:

using namespace Windows::Networking;
using namespace Windows::Networking::Sockets;
using namespace Windows::Storage::Streams;

// --- monkey api code ---
void HttpPost(String url,String data,Array<String > result) {
    //url.ToCString<wchar_t>()
    auto uri = ref new Windows::Foundation::Uri(url.ToWinRTString());

    StreamSocket^ clientSocket = ref new StreamSocket();

    HostName^ serverHost = ref new HostName(uri->Host);

    Print("connecting");
    //task<void>(clientSocket->ConnectAsync(serverHost, uri->SchemeName, SocketProtectionLevel::SslAllowNullEncryption)).then([] (task<void> previousTask) {
        Print("connected!");
    //});
}

Если я скомпилирую проект, из которого получен фрагмент, он будет работать. Если я раскомментирую две строки внизу, я получаю неразрешенную ошибку:

Ошибка 1, ошибка LNK2019: неразрешенный внешний символ "long __stdcall CaptureUiThreadContext(struct IContextCallback * *)" (?CaptureUiThreadContext@@YGJPAPAUIContextCallback@@@Z), на который ссылается функция "public: void __thiscall _)" (?_Resolve@_ContextCallback@details@Concurrency@@QAEX_N@Z) C:\dev\proj

Я гуглил для "CaptureUiThreadContext" и есть один результат поиска, который не предлагает никакой помощи. Там нет ссылки на это в моем коде или библиотеках, которые я использую. Есть ли у кого-нибудь слова мудрости, чтобы помочь мне решить эту проблему?

Какой заголовок или lib я пропускаю, который содержит это?

Это моя ссылка http://msdn.microsoft.com/library/windows/apps/jj150597.aspx?cs-save-lang=1&cs-lang=cpp

1 ответ

Решение

Это работает для меня, копируя ваш код в свежее приложение WP8 из шаблона Direct3DApp.

Командная строка компоновщика включает "WindowsPhoneCore.lib" "RuntimeObject.lib" "PhoneAppModelHost.lib" /NODEFAULTLIB:"ole32.lib".

У тебя есть WindowsPhoneCore.lib включено?

Другие вопросы по тегам