Я получаю диалог отмены в Visual Studio.
Это код:
#include <iostream>
#include <string>
class DateTime
{
public:
DateTime(unsigned year, unsigned month, unsigned date, unsigned hour, unsigned minute, unsigned second);
DateTime(unsigned year, unsigned month, unsigned date);
~DateTime();
std::string get_string();
private:
unsigned year;
unsigned month;
unsigned day;
unsigned hour;
unsigned minute;
unsigned second;
};
std::string DateTime::get_string()
{
// dd/MM/yyyy hh:mm:ss
std::string day_s = (this->day < 10) ? "0" + this->day : std::to_string(this->day);
std::string month_s = (this->month < 10) ? "0" + this->month : std::to_string(this->month);
std::string year_s = std::to_string(this->year);
std::string hour_s = (this->hour < 10) ? "0" + this->hour : std::to_string(this->hour);
std::string minute_s = (this->minute < 10) ? "0" + this->minute : std::to_string(this->minute);
std::string second_s = (this->second < 10) ? "0" + this->second : std::to_string(this->second);
return day_s + "/" + month_s + "/" + year_s + " " + hour_s + ":" + minute_s + ":" + second_s;
}
DateTime::DateTime(unsigned year, unsigned month, unsigned date)
{
if (month > 12 || day > 31)
throw std::out_of_range("DateTime out of valid range");
unsigned max_d = 31;
if (month == 4 || month == 6 || month == 9 || month == 11)
max_d = 30;
else if (month == 2) {
max_d = 28;
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
max_d = 29;
}
if (day > max_d)
throw std::out_of_range("DateTime out of valid range");
this->year = year;
this->month = month;
this->day = day;
this->hour = 0;
this->minute = 0;
this->second = 0;
}
DateTime::DateTime(unsigned year, unsigned month, unsigned date, unsigned hour, unsigned minute, unsigned second)
{
if (month > 12 || day > 31 || hour > 24 || minute > 60 || second > 60)
throw std::out_of_range("DateTime out of valid range");
unsigned max_d = 31;
if (month == 4 || month == 6 || month == 9 || month == 11)
max_d = 30;
else if (month == 2) {
max_d = 28;
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
max_d = 29;
}
if (day > max_d)
throw std::out_of_range("DateTime out of valid range");
this->year = year;
this->month = month;
this->day = day;
this->hour = hour;
this->minute = minute;
this->second = second;
}
DateTime::~DateTime()
{
}
int main(int argc, char const *argv[])
{
DateTime d1(2018, 5, 14);
std::cout << d1.get_string();
return 0;
}
Обратите внимание, что я не использую предварительно скомпилированные заголовки, потому что я компилировал их в терминале и пытался отлаживать в Visual Studio. В терминале ошибка, которую я получаю:
myprog.exe
Точка входа не найдена
Точка входа в процедуру
_ZNKSt7__cxx1112basic_stringlcSt11char_traitsIcESalcEE7_M_dataEv мог
не находиться в динамической библиотеке C: ...... \ myprog.exe
Я очень далек от понимания того, что это значит. Может ли кто-нибудь мне помочь?
Я считаю, что это ошибка во время выполнения? Я искал похожие ошибки, и большинство из них связано с DLL. Это тот случай?
Edit:
Я скомпилировал исходный файл с g++ myProg.cpp -o myprog