Эй, у меня очень неприятная ошибка.
У меня есть приложение 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-Ланг = каст # код-сниппет-2
Это работает для меня, копируя ваш код в свежее приложение WP8 из шаблона Direct3DApp.
Командная строка компоновщика включает "WindowsPhoneCore.lib" "RuntimeObject.lib" "PhoneAppModelHost.lib" /NODEFAULTLIB:"ole32.lib".
У тебя есть WindowsPhoneCore.lib
включено?
Других решений пока нет …