I have written an C++/Cli wrapper for a native C++ dll, but when I call some method from C# I get an System.AccessViolationException error in my C++/Cli Wrapper dll! It's necessary to marshal the unmanaged types or something else?!

Code:
    // Wrapper.h
    
    typedef UnmanagedClass* (*Instance)(void);
    
    private:
    	UnmanagedClass *m_object; // unmanaged object	

    // Wrapper.cpp
    
    Wrapper:Wrapper()
    {
        HINSTANCE unmanagedLib;
        unmangedLib = LoadLibrary(SystemStringToLPCSTR(dllPath+dllName));
    
        // load instance
        Instance _createInstance = (Instance)GetProcAddress(unmangedLib, "GetInstance");
        m_object = (_createInstance)();	
    }

    Wrapper::~Wrapper()
    {
        //m_object->~UnmanagedClass();
        delete m_object;
        m_object = 0;
    }


    Uint32 Wrapper::SomeMethod(Uint8 *bytRecvBuffer, int &iRecvLen)
    {
        return m_object->SomeMethod(bytRecvBuffer, iRecvLen);
    }

    // Unmanaged Class
    
    class UnmanagedClass	
    {
    public:
    	/**
    	* Default constructor. 
    	*/
    	UnmanagedClass(void);
    	/**
    	* Default Destructor
    	*/
    	~UnmanagedClass(void);
    
        virtual Uint32 Wrapper::SomeMethod(Uint8 *bytRecvBuffer, int &iRecvLen);
    };

    // export the UnmanagedClass object
    extern "C" _declspec(dllexport) UnmanagedClass* GetInstance();

    // UnamangedClass.cpp
    
    UnamangedClass::~UnamangedClass(void)
    {
    	if (UnamangedClassDLL != NULL)
    		FreeLibrary(UnamangedClassDLL);
    
    	UnamangedClassDLL = NULL;
    }

    extern "C" _declspec(dllexport) UnmanagedClass* GetInstance()
    {
    
    	return new UnmanagedClass();
    }
When I call at example SomeMethod from C# I get the error in C++/Cli dll!
(I included the C++/cli dll with add reference in C sharp project and create the Wrapper object)


Thank you for your help!



greets