У меня есть DLL, которая имеет только одну функцию экспорта:
#ifdef __cplusplus
extern "C"
{
__declspec(dllexport) IRouter* CreateRouter();
}
#endif
Интерфейс для IRouter выглядит следующим образом:
class IRouter
{
public:
virtual bool __stdcall DoSomething(LPCWSTR szCommand) = 0;
// Call Release() from DLL client to free any memory associated with this object
virtual bool __stdcall Release() = 0;
};
, и у меня есть конкретный класс, интерфейс которого имеет видследующие:
class CMyRouter : public IRouter
{
public:
bool __stdcall DoSomething(LPCWSTR szCommand);
bool __stdcall Release();
}
Как и следовало ожидать, реализация для класса MyRouter включена в DLL.
Код для моей единственной функции экспорта выглядит следующим образом:
#ifdef __cplusplus
extern "C"
{
__declspec(dllexport) IRouter* CreateRouter()
{
return new CMyRouter;
}
}
#endif // __cplusplus
Мой вопрос: как я могу получить доступ к своему производному объекту IRouter из клиента C #?