Z
So, der Absturz ist beseitigt.
Es lag nicht direkt am SAFEARRAY. Das Bauen von dem SAFEARRY führte dazu dass das CAD_Progrämmchen nicht richtig die Linie darstellte, tut es aber jetzt.
Ich hatte einfach vergessen
DcCurve = DcDoc->Curve();
zu machen.
Jetzt gibt es "nur" noch einen "weichen Fehler", der nur beim Ausführen des Programmes Innerhalb der IDE auftritt. Wenn ich aus dem Explorer heraus die EXE bemühe pasiert nix.
Es öffnet sich ein Header namens "comip.h"
Dort entsteht eine Unbehandelte Ausnahme bei 0x774dc8ed in TestSafeArray.exe
0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00175048.
Das kommt auch, wenn ich den ganzen Array-Trödel auskommentiere und den Quelltext verkürtzt laufen lasse:
HRESULT hr = DcApp.GetActiveObject(_uuidof(Dcad17::Application));
DcApp->BringToTop();
DcApp->Visible = true;
DcDocs = DcApp->Documents();
DcDoc = DcApp->GetActiveDocument();
DcPts = DcDoc->CmdPoints();
double x_start; double y_start; double z_start;
wxMessageBox(wxT("Bitte den Startpunkt setzen"));
DcPts->GetUserPoint(&x_start,&y_start,&z_start);
Wie gesagt, es passiert nix wenn ich die EXE "normal" starte. Irgendwas scheint da nicht ganz koscher zu sein...
Ich vermute dass die COM-Geschichte nicht so ganz sauber ist. Wie schon erwähnt beziehen sich die Beispiele im Handbuch auf C++Builder 4/5 und VC++6. Da werden irgendwelche afx...-Header verwendet. Die gibt es nicht bei mir.
Vielen Dank nochmal für die Hilfe.
Gruß
Zarathus