1、 download Daniel's code(look the attachment)
2、 use ARX2009 Wizard, select ".NET mixed managed code support"
3、 Insret a Class, name is Utilities
4、 copy Daniel's code
// Utilities.h
#pragma managed
#pragma once
using namespace System;
using namespace System::Text;
using namespace Autodesk::AutoCAD::DatabaseServices;
using namespace Autodesk::AutoCAD::Geometry;
using namespace Autodesk::AutoCAD::Runtime;
namespace AcMgdWrprs
{
public ref class Utilities
{
public:
Utilities(void);
static double Distance(Point3d pt1, Point3d pt2);
};
}
// Utilities.cpp
#include "StdAfx.h"
#include "Utilities.h"
using namespace System;
using namespace System::Text;
using namespace System::Collections::Generic;
using namespace Autodesk::AutoCAD::DatabaseServices;
using namespace Autodesk::AutoCAD::Geometry;
using namespace Autodesk::AutoCAD::Runtime;
using namespace Autodesk::AutoCAD::EditorInput;
using namespace Autodesk::AutoCAD::ApplicationServices;
//
namespace AcMgdWrprs
{
Utilities::Utilities(void)
{
}
double Utilities::Distance(Point3d pt1, Point3d pt2)
{
ads_point adspt1;
ads_point adspt2;
adspt1[0] = pt1.X;
adspt1[1] = pt1.Y;
adspt1[2] = pt1.Z;
adspt1[0] = pt2.X;
adspt1[1] = pt2.Y;
adspt1[2] = pt2.Z;
return acutDistance(adspt1,adspt2);
}
}
5、 compile,but reeor……
Utilities.cpp
g:\arxcstest\Utilities.h(12) : error C2059: syntax error : 'public'
g:\arxcstest\Utilities.h(13) : error C2143: syntax error : missing ';' before '{'
g:\arxcstest\Utilities.h(13) : error C2447: '{' : missing function header (old-style formal list?)
.\Utilities.cpp(18) : error C3414: 'Autodesk::AutoCAD::Runtime::Utilities::Utilities' : imported member function can't be defined
.\Utilities.cpp(18) : error C2888: 'Autodesk::AutoCAD::Runtime::Utilities::Utilities(void)' : symbol cannot be defined within namespace 'AcMgdWrprs'
.\Utilities.cpp(22) : error C2039: 'Distance' : is not a member of 'Autodesk::AutoCAD::Runtime::Utilities'
d:\program files\autocad 2009\acdbmgd.dll : see declaration of 'Autodesk::AutoCAD::Runtime::Utilities'