Я прочитал несколько документов, в которых приводятся простые примеры функций, совместимых с 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
Но теперь я понятия не имею, как я могу создать экземпляр своего класса? Как я могу использовать явную или неявную привязку?
Приветствуется любая помощь с образцом кода.