0

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

我有一个 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 Concurrency::details::_ContextCallback::_Resolve(bool )" (?_Resolve@_ContextCallback@details@Concurrency@@QAEX_N@Z) C:\dev\proj

我搜索了“CaptureUiThreadContext”,但有一个搜索结果没有提供任何帮助。我使用的代码或库中没有引用它。有没有人有智慧的话来帮助我解决这个问题?

我缺少什么包含这个的头文件或库?

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

4

1 回答 1

1

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

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

你有WindowsPhoneCore.lib包括吗?

于 2013-05-21T12:09:13.510 回答