我使用通过NuGet获得的VS2015和aws-sdk-cpp 1.1.16 (核心版本)。当我尝试编译我的程序时,我得到了以下错误:Error C2027 use of undefined type 'Aws::Utils::Outcome<Aws::Glacier::Model::GetDataRetrievalPolicyResult,Aws::Client::AWSError<Aws::Glacier::GlacierErrors>>'
这是我的代码:
main.cpp
#include "stdafx.h"
int main()
{
Aws::SDKOptions options;
Aws::InitAPI(options);
{
Aws::Client::ClientConfiguration config;
config.scheme = Aws::Http::Scheme::HTTPS;
config.connectTimeoutMs = 30000;
config.requestTimeoutMs = 30000;
config.region = Aws::String(Aws::Region::EU_WEST_1);
Aws::Glacier::GlacierClient client(config);
Aws::Glacier::Model::GetDataRetrievalPolicyRequest request;
Aws::Glacier::Model::GetDataRetrievalPolicyOutcome outcome = client.GetDataRetrievalPolicy(request);
//^^^ error at this line
if (outcome.IsSuccess()) {
Aws::Vector<Aws::Glacier::Model::DataRetrievalRule> rules = outcome.GetResult().GetPolicy().GetRules();
for (auto it : rules) {
std::cout << it.GetStrategy() << std::endl;
}
}
else {
std::cout << "GetDataRetrievalPolicy error: "
<< outcome.GetError().GetExceptionName() << std::endl
<< outcome.GetError().GetMessage() << std::endl;
}
}
Aws::ShutdownAPI(options);
system("pause");
return 0;
}stdafx.h
#pragma once
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <aws/acm/ACMClient.h>
#include <aws/core/Aws.h>
#include <aws/core/Region.h>
#include <aws/core/client/ClientConfiguration.h>
#include <aws/core/client/AWSClient.h>
#include <aws/glacier/GlacierClient.h>
#include <aws/glacier/model/GetDataRetrievalPolicyRequest.h>
#include <aws/glacier/model/GetDataRetrievalPolicyResult.h>
#include <aws/glacier/model/DataRetrievalPolicy.h>
#include <aws/glacier/model/DataRetrievalRule.h>我曾尝试用auto或Aws::Utils::Outcome<type_of_result, type_of_error>替换Aws::Glacier::Model::GetDataRetrievalPolicyOutcome,但无济于事
另外,我不能创建任何类型的Aws::Utils::Outcome<R,E>实例
另外,当我尝试包含#include <aws/core/utils/Outcome.h>时,我得到了以下错误:Error C2535 'Aws::Utils::Outcome<std::string,std::string>::Outcome(R &&)': member function already defined or declared ..\packages\awssdkcpp-core.1.1.16\build\native\include\aws\core\utils\outcome.h 50
Error C2535 'Aws::Utils::Outcome<std::string,std::string>::Outcome(const R &)': member function already defined or declared ..\packages\awssdkcpp-core.1.1.16\build\native\include\aws\core\utils\outcome.h 44
发布于 2017-07-25 02:57:28
好的,当我将stdafx.h改为
#pragma once
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <aws/core/Aws.h>
#include <aws/glacier/GlacierClient.h>
#include <aws/glacier/model/GetDataRetrievalPolicyRequest.h>
#include <aws/core/utils/Outcome.h>一切都开始运转了
https://stackoverflow.com/questions/45286692
复制相似问题