Message 1 of 2
Drawable wrapper?
Not applicable
01-18-2013
06:58 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I have a custom AcGiDrawable entity that I want to wrap in .Net. All this is done and compiles fine but when I try to instance the object I get the message "Cannot create an instance of the abstract class or interface '....'.
Any ideas why this would be an issue. I have several custom entities (derived from AcDbEntity and AcDbObject) that aren't a problem, but for this one, problems arise.
#pragma once
#include "mgdinterop.h"
#include "..\InForm.Dbx\ReferenceIndicator.h"
using namespace System;
using namespace Autodesk::AutoCAD::DatabaseServices;
using namespace Autodesk::AutoCAD::Runtime;
using namespace Autodesk::AutoCAD::Geometry;
using namespace Autodesk::AutoCAD::GraphicsInterface;
using namespace Autodesk::AutoCAD::GraphicsSystem;
using namespace inform::dbx;
namespace aag = Autodesk::AutoCAD::GraphicsInterface;
namespace gs = Autodesk::AutoCAD::GraphicsSystem;
namespace InForm { namespace Dbx { namespace Net
{
[Autodesk::AutoCAD::Runtime::Wrapper("ReferenceIndicator")]
public ref class ReferenceIndicatorWrapper : aag::Drawable
{
#pragma region " Constructor "
public:
ReferenceIndicatorWrapper(void);
ReferenceIndicatorWrapper(System::IntPtr ent, bool autoDel);
#pragma endregion
#pragma region " Internal Object "
private:
inline inform::dbx::ReferenceIndicator* GetInternalObject()
{
return static_cast<inform::dbx::ReferenceIndicator*>(UnmanagedObject.ToPointer());
}
#pragma endregion
#pragma region " Public Methods "
public:
void Initialize(gs::View^ v, gs::Model^ m)
{
inform::dbx::ReferenceIndicator* p = GetInternalObject();
if(p)
{
AcGsView* view = static_cast<AcGsView*>(v->UnmanagedObject.ToPointer());
AcGsModel* model = static_cast<AcGsModel*>(m->UnmanagedObject.ToPointer());
p->Initialize(view, model);
}
}
#pragma endregion
};
}}}
#include "stdafx.h"
#include "ReferenceIndicatorWrapper.h"
using namespace InForm::Dbx::Net;
ReferenceIndicatorWrapper::ReferenceIndicatorWrapper(void)
: aag::Drawable((System::IntPtr)new inform::dbx::ReferenceIndicator(), true)
{
}
ReferenceIndicatorWrapper::ReferenceIndicatorWrapper(System::IntPtr ent, bool autoDel)
: aag::Drawable(ent, autoDel)
{
}