現在、通信関係のプログラムを勉強しようと思い、C++ REST SDKを使用しているのですが、コンパイルが通りません。
。どうもMicrosoft社のソースのinclude部分でエラーが起こっている?ようです。
どうすればコンパイルが出来るようになるのでしょうか?
実行手順がエラーの原因の可能性も考え、実行手順を記載します。
1、VisualStudioCommunity2017をインストール
2、コンソールアプリケーションプロジェクトを作成
3、ツール→Nugetパッケージマネージャからcpprestsdkをインストール
4、ソースをコピペして実行しましたが、エラー(http://kagasu.hatenablog.com/entry/2017/10/07/190551 のⅣ. GETのソースです)
main.cpp
► スポイラーを表示
#include <Windows.h>
#include <iostream>
#include <cpprest/http_client.h>
using namespace web;
using namespace web::http;
using namespace web::http::client;
pplx::task<void> Get()
{
return pplx::create_task([]
{
// proxyあり
// auto config = http_client_config();
// config.set_proxy(web_proxy(utility::conversions::to_string_t("http://127.0.0.1:8080")));
// http_client client(L"https://jsonplaceholder.typicode.com/posts/1", config);
http_client client(L"https://jsonplaceholder.typicode.com/posts/1");
return client.request(methods::GET);
}).then([](http_response response)
{
if (response.status_code() == status_codes::OK)
{
// レスポンスを文字列として取得後、標準出力する
// auto body = response.extract_string();
// std::wcout << body.get().c_str() << std::endl;
// レスポンスをJSONとして解析する
return response.extract_json();
}
}).then([](json::value json)
{
// タイトルだけ取得する
std::wcout << json[L"title"].as_string() << std::endl;
});
}
int main()
{
// コマンドプロンプトの文字コードをUTF-8に設定する
SetConsoleOutputCP(CP_UTF8);
try
{
Get().wait();
}
catch (const std::exception &e)
{
std::cout << "Error " << e.what() << std::endl;
}
return 0;
}
► スポイラーを表示
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー (アクティブ) E0427 メンバー宣言では修飾名は使用できません ConsoleApplication1 c:\Users\misov\Desktop\ConsoleApplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\asyncrt_utils.h 491
エラー C4596 'system_type_to_datetime': メンバー宣言内の限定名が間違っています。 ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\asyncrt_utils.h 491
エラー C7510 'int_type': で依存する 型 の名前を使用するには、先頭に 'typename' を付ける必要があります ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\streams.h 888
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_msg.h 571
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_msg.h 969
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_msg.h 1198
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_client.h 558
エラー (アクティブ) E0427 メンバー宣言では修飾名は使用できません ConsoleApplication1 c:\Users\misov\Desktop\ConsoleApplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\asyncrt_utils.h 491
エラー C4596 'system_type_to_datetime': メンバー宣言内の限定名が間違っています。 ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\asyncrt_utils.h 491
エラー C7510 'int_type': で依存する 型 の名前を使用するには、先頭に 'typename' を付ける必要があります ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\streams.h 888
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_msg.h 571
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_msg.h 969
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_msg.h 1198
エラー C3083 '`global namespace'': '::' の左側のシンボルには、型を指定しなければなりません ConsoleApplication1 c:\users\misov\desktop\consoleapplication1\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn.2.9.1\build\native\include\cpprest\http_client.h 558