Как я могу импортировать dll класса C ++ внутри пространства имен

Я прочитал несколько документов, в которых приводятся простые примеры функций, совместимых с C.

__declspec(dllexport) MyFunction();

Я согласен с этим. Пишу небольшое приложение, использующее функции этой dll. Я использовал явное связывание с функцией

LoadLibrary() 

. Функции стиля C работают без проблем. Но когда я пишу свой класс как

namespace DllTest
{
class Test
{
public:
    __declspec(dllexport) Test();
    __declspec(dllexport) void Function( int );
    __declspec(dllexport) int getBar(void);
private:
    int bar;
};

}
#endif

, он хорошо компилируется и создается Dll. При работе с функциями стиля C я просто брал указатель на функцию из функций LoadLibrary () и GetProcAddress (...).

Раньше я использовал

typedef void (*Function)(int);

int main()
{
   Function _Function;
   HINSTANCE hInstLibrary = LoadLibrary(TEXT("test.dll"));

   if (hInstLibrary)
   {
      _Function = (Function)GetProcAddress(hInstLibrary,"Function");
     if (_Function)
     {
        // use the function

Но теперь я понятия не имею, как я могу создать экземпляр своего класса? Как я могу использовать явную или неявную привязку?

Приветствуется любая помощь с образцом кода.

5
задан accfews 14 April 2015 в 08:09
поделиться