I have many LoadLibrary
in my project, and need to call FreeLibrary
manually for each LoadLibrary
. I want to use the std::unique_ptr
with specific deleter
to make it auto release my dll resource.
This is what I am trying to define:
std::unique_ptr<HMODULE, BOOL(*)(HMODULE)> theDll(LoadLibrary("My.dll"), FreeLibrary);
But the compiler complains the type does not match. I found out it expects *HMODULE
from LoadLibrary
. That is std::unique_ptr<A>
will expect A*
as its pointer type. It looks I still need to define a new class to manage DLL resource(LoadLibrary
in constructor and FreeLibrary
in destructor).
Is is possible to make std::unique_ptr<A>
to just expect the A
as its pointer type?
Aucun commentaire:
Enregistrer un commentaire