C++ класс для обертывания loadlibrary?

Я подумал, что было бы здорово иметь несколько классов, чтобы обернуть вокруг LoadLibrary и GetProcAddress, Library и Function соответственно. Пока я думал об этом, я не уверен, что это возможно. Вот что я думаю:

Класс Library:

class Library
{
    HANDLE m_handle;
public:
    // Handles initializing the DLL:
    Library(std::string name);
    // Deinitializes the DLL
    ~Library();

    HANDLE getHandle();
    bool isInitialized();
}

И класс Function:

class Function
{
public:
    Function(Library& library, std::string name);


    void* call(/* varg arguments? */) throw(exception);

    bool isValid();
}

Проблема возникает потому, что я должен иметь динамические типы данных для параметров и несколько длин для передачи реальному указателю функции. Я мог бы обойти множественную длину аргументов, указав ее в конструкторе и имея определенные методы, но как быть с типами данных?

EDIT: Я создал классы на основе ответов для всех желающих здесь: https://github.com/ic3man5/ice--

6
задан David 11 November 2011 в 03:18
поделиться