问题描述
#include <iostream>
#include <curl/curl.h>
#include <fstream>
#include <json/json.h>
using namespace std;
static size_t writecallback(void* contents,size_t size,size_t nmemb,void* userp) {
((std::string*)userp)->append((char*)contents,size * nmemb);
return size * nmemb;
}
std::string ReadWebsite(const char* URL)
{
CURL* curl;
CURLcode res;
std::string readBuffer;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl,CURLOPT_URL,URL);
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,0L);
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYHOST,CURLOPT_WRITEFUNCTION,writecallback);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,&readBuffer);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
printf("Error");
}
curl_easy_strerror(res);
curl_easy_cleanup(curl);
curl_global_cleanup();
// printf(readBuffer.c_str());
return readBuffer;
}
}
int main()
{
Json::Reader reader;
Json::Value root;
std::string text = ReadWebsite("https://pastebin.com/raw/PW13MZjp");
if (reader.parse(text.c_str(),root)) {
cout << root["addresses"];
}
}
C4996:'Json::Reader' 改用 CharReader 和 CharReaderBuilder。
C4996:'Json::Reader::__autoclassinit2' 改用 CharReader 和 CharReaderBuilder。
C4996:'Json::Reader::Reader' 改用 CharReader 和 CharReaderBuilder。
C4996:'Json::Reader::parse' 改用 CharReader 和 CharReaderBuilder。
如果我使用 CharReader 和 CharReadBuilder,我会在 ConsoleApplication2.exe 中的 0x79781F4C (ucrtbased.dll) 处抛出异常:0xC0000005:访问冲突读取位置 0xCCCCCCCC。
使用 CharReader 和 CharReadBuilder 编写代码
int main()
{
std::string Reply = ReadWebsite("https://pastebin.com/raw/PW13MZjp");
const auto rawJsonLength = static_cast<int>((Reply).length());
JSONCPP_STRING err;
Json::Value root;
Json::CharReaderBuilder builder;
const std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
if (!reader->parse((Reply).c_str(),Reply.c_str() + rawJsonLength,&root,&err)) {
MessageBoxA(NULL,"error",MB_OK);
return EXIT_FAILURE;
}
printf("%s\n\n",root["offsets"]["ls_offset"]);
system("pause");
}
不接受任何帮助。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)