Ich wende mich an Sie mit einer Frage.
Ich hoffe sehr auf ihre Hielfe.
Diese Fragen ist es mit der Programmierung C++ und VBA verbundet.
Ich stellte diese Frage in Autodesk - Discussion Groups(ObjectARX und VBA) seit Lange und NIEMAND kann auf meine Frage nicht antworten.
Ich wuerde dankbar, wenn sie mir in dieser Frage helfen.
Ich glaube fuer Sie diese Frage nicht schwer zu loesen.
Es handelt sich um Wrappers in ObjectArx.
In ObjectARX es gibt ein Beispiel - AsdkSquareWrap.
Er befindet sich in der Verzeichnis: ObjectARX\samples\com\AsdkSquareWrapper_dg\AsdkSquareWrap
Dieses Beispiel zeigt wie kann man mit Automation arbeiten.
d.h. AsdkSquareLib.dll schaffen, register diese Datei durch AsdkSquareLib.reg
und danach dieses AsdkSquareLib.dll kann man in VBA einschliesen und Square(Recheck) zeichnen.
wenn ich in VBA schreibe Kode:
Dim Square As AsdkSquareWrapper
Dim CPoint As Variant
Set Square = New AsdkSquareWrapper
CPoint = ThisDrawing.Utility.GetPoint(, vbCr & "Point:")
Square.CenterPoint = CPoint
...
ich bekomme Fehler auf der Bildschirm PERMISSION DENIED.
in AsdkSquareWrapper.cpp gibt es eine Funktion, die diese Fehler hervoruftr:
STDMETHODIMP CAsdkSquareWrapper:: put_CenterPoint(VARIANT newVal)
{
AcAxDocLock docLock(m_objRef.objectId(), AcAxDocLock::kNormal);
if(docLock.lockStatus() != Acad::eOk && docLock.lockStatus() != Acad::eNoDatabase)
return E_ACCESSDENIED;
AcAxPoint3d pt = newVal;
AcAxObjectRefPtr <AsdkSquare> pSq(&m_objRef, AcDb::kForWrite, Adesk::kTrue);
Acad::ErrorStatus es = pSq.openStatus();
if (es != Acad::eOk)
{
acutPrintf("retrieve Error: %d\n", es);
return E_ACCESSDENIED;
}
pSq->setSquareCenter(pt);
Fire_Notification(DISPID_CENTERPOINT);
return S_OK;
}
der Fehler: ErrorStatus = 46 d.h. ErrorStatus = eNotThatKindOfClass
Was ich fehlerhaft auf VBA mache?
Warscheinlich dieses Beispiel in ObjectARX fuer VBA ueberhaupt nicht funktioniert?
Villeicht haben Sie richtiges Beispiel fuer Automation ObjectARX fuer VBA?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP