В C++ всё (почти) необходимо явно инициализировать, а то потом можно получить очень интересные проблемы.
К конструкторам с одним аргументом лучше добавлять explicit, чтобы избежать неявных преобразований и всяких интересных эффектов по ходу работы программы.
Золотое правило: сами реализовали деструктор, конструктор копии, оператор копирования, конструктор перемещения или оператор перемещения, задумайтесь о том, что вам возможно надо реализовать все пять методов.
class TLibrary{
HINSTANCE hModule;
TLibrary( const TLibrary &){}
TLibrary(){}
public:
TLibrary(const char *LibName){
if( ( hModule = LoadLibrary(LibName) ) == NULL )
throw Exception("Can't load library");
}
virtual FARPROC getProcAddress(const char *ProcName){
FARPROC ptr = GetProcAddress(hModule, ProcName);
if( ptr == NULL )
throw Exception("Can't find func");
return ptr;
}
virtual ~TLibrary(){
FreeLibrary(hModule);
}
};
И вот за те 800рублей (300абоненка и 500руб за виртуальный трафик, который кстати и проверить то никак нельзя, задним числом), что они списали меньше чем за месяц, можно вообще иметь "безлимит" (в разумных пределах конечно).
А по факту минус800 рублей и опять требуют деньги, т.к. на балансе их уже нет :) И мне кажется что больше не будет.