I have a .dll c++ project created in visual studio 2017. And I have code in it that uses aws sdk to get files from s3 bucket.
I built this dll project on Debug mode mode and uses it on my main application (c++ also). And it worked.
Now i did make a release build of both dll project and my main application. And my application crashes when executing the "aws sdk c++" code.
Here's the code snippet about aws sdk c++:
int Download()
{
Aws::SDKOptions options;
Aws::InitAPI(options);
{
const Aws::String bucket_name = "timestamp-storage";
//Aws::String key_name = "";
const Aws::String region = "ap-northeast-1";
std::map<int, std::string> uploadedBioMap = BiometricDB::List();
std::map<int, std::string>::iterator i;
for (i = uploadedBioMap.begin(); i != uploadedBioMap.end(); i++) {
Aws::String key_name = i->second;
std::cout << "Downloading " << key_name << " from S3 bucket: " <<
bucket_name << std::endl;
Aws::Client::ClientConfiguration clientConfig;
if (!region.empty())
clientConfig.region = region;
Aws::S3::S3Client s3_client(clientConfig);
Aws::S3::Model::GetObjectRequest object_request;
object_request.WithBucket(bucket_name).WithKey(key_name);
auto get_object_outcome = s3_client.GetObject(object_request);
if (get_object_outcome.IsSuccess())
{
Aws::OFStream local_file;
local_file.open(("enroll/" + key_name).c_str(), std::ios::out | std::ios::binary);
local_file << get_object_outcome.GetResult().GetBody().rdbuf();
std::cout << "Done!" << std::endl;
}
else
{
std::cout << "GetObject error: " <<
get_object_outcome.GetError().GetExceptionName() << " " <<
get_object_outcome.GetError().GetMessage() << std::endl;
}
}
}
Aws::ShutdownAPI(options);
return 1;
}
Hope someone can help me.