LINK 2019将.then()添加到异步cpp代码时未解析的外部符号“CaptureUiThreadContext”

时间:2013-05-20 20:44:25

标签: c++ windows-phone-8 stream-socket-client

嘿,我有一个非常令人沮丧的错误。

我有一个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:未解析的外部符号&#34; long __stdcall CaptureUiThreadContext(struct IContextCallback * *)&#34; (?CaptureUiThreadContext @@ YGJPAPAUIContextCallback @@@ Z)在函数&#34中引用; public:void __thiscall Concurrency :: details :: _ ContextCallback :: _ Resolve(bool)&#34; (?_Resolve @ _ContextCallback @ details @ Concurrency @@ QAEX_N @ Z)C:\ dev \ proj

我用Google搜索了#34; CaptureUiThreadContext&#34;并且有一个搜索结果没有提供任何帮助。在我使用的代码或库中没有引用它。有没有人有任何智慧的话来帮助我解决这个问题?

我错过了什么标题或库包含这个?

这是我的参考 http://msdn.microsoft.com/library/windows/apps/jj150597.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-2

1 个答案:

答案 0 :(得分:1)

通过将代码复制到Direct3DApp模板中的全新WP8应用程序,它对我有用。

链接器命令行包含"WindowsPhoneCore.lib" "RuntimeObject.lib" "PhoneAppModelHost.lib" /NODEFAULTLIB:"ole32.lib".

您是否包含WindowsPhoneCore.lib