Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Programmfehler

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Programmfehler (2254 mal gelesen)
Silvan01
Mitglied



Sehen Sie sich das Profil von Silvan01 an!   Senden Sie eine Private Message an Silvan01  Schreiben Sie einen Gästebucheintrag für Silvan01

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 10. Dez. 2009 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,

ich habe eine Applikation mit VB.Net Programmiert. Im Programm werden einige Objekte in ein Selectionset gepackt und anschließend folgendermaßen überprüft:

Code:
If TrAct.GetObject(ObjIDs(C2), OpenMode.ForRead, True, True).GetType.Equals(GetType(BlockReference)) Then
    Dim tdbobj = TrAct.GetObject(ObjIDs(C2), OpenMode.ForRead, True, True)
    If tdbobj IsNot Nothing Then brefs(C) = TryCast(tdbobj, BlockReference)
End If

Ich bekomme an der markierten Stelle allerdings folgende/-n Error/Exception:

eInvalidContext
bei Autodesk.AutoCAD.DatabaseServices.TransactionManager.GetObjectInternal(AcDbTransactionManager* pTM, ObjectId id, OpenMode mode, Boolean openErased, Boolean forceOpenOnLockedLayer)

bei Autodesk.AutoCAD.DatabaseServices.Transaction.GetObject(ObjectId id, OpenMode mode, Boolean openErased, Boolean forceOpenOnLockedLayer)

bei meiner Funktion

Das Problem:
Der Fehler tritt bei den gleichen Gegebenheiten nicht immer auf. Und Wenn er Auftritt dann auch nicht unbedingt bei der gleichen ObjektID.
Die ObjektIDs, bei der der Error auftritt, habe ich schon angesehen und konnte keinene Fehler entdecken.

Eine weiterer Fehler tritt ab und zu (eher selten) bei einer Zeile in der ich einen "Save As"-Dialog aufrufe und das Ergebnis abfrage auf:

Code:
If Save.SaveFileDialog.ShowDialog = DialogResult.OK then

Hab den Error Code jetzt nach langen Probieren immer noch nicht bekommen (wie gesagt tritt sehr selten auf) um ihn jetzt zu zeigen. Aber kann man bei dem SaveFileDialog was falsch machen oder muss man noch etwas weiteres beachten.

Grüße und Danke im Vorraus für Eure Hilfe 

Silvan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 10. Dez. 2009 11:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Silvan,

bau den Code mal so um:

Code:
Dim tDbObj as DatabaseService.DBObject = Nothing
Try
  Dim tDbObj = TrAct.GetObject(ObjIDs(C2), OpenMode.ForRead, True, True)
  if (tDbObj isnot Nothing) AndAlso (tDbObj.GetType.Equals(getType(BlockReference))) Then
      'und hier jetzt, was auch immer Du damit machen willst
  end if
Catch ex as System.Exception
  Debug.Print(ObjIDs(C2).ToString)  'und auf diese Zeile einen Breakpoint setzen
  'hier kannst Du dann 'ObjIDs(C2)' im Überwachungsfenster prüfen
End Try

Das mögliche Problem in Deinem Code ist, dass Du mit ...GetType darauf hingreifst, bevor Du noch geprüft hast, ob Nothing retourniert wurde.


Bei dem Speichern-Dialog Problem würde ich ähnlich vorgehen. Es zwischen Try-Catch-End Try setzen und möglichst viel Info aus der Exception ablesen versuchen. Wenn Du dabei nicht im Debug-Modus bist, dann halt in ein ASCII-File schreiben lassen.

- alfred -

------------------
www.hollaus.at

Silvan01
Mitglied



Sehen Sie sich das Profil von Silvan01 an!   Senden Sie eine Private Message an Silvan01  Schreiben Sie einen Gästebucheintrag für Silvan01

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 14. Dez. 2009 10:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


watch.JPG


Error.JPG

 
Hallo Alfred,

habe den Fehler mit dem Savefiledialog lösen können. War nur falsch interpretiert der Fehler lag wo anders.

Ich hab auch mal den Fehler mit dem eInvalidContext umgebaut. Kann aber immer noch keinen Fehler bei der ObjectID finden und den Error versteh ich leider auch nicht bzw. weiß nicht worauf ich noch achten muss. (Siehe Screenshots)

Außerdem bekomme ich ab und zu auch noch einen anderen Fehler:
Die Error Nachricht:
"Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

Stacktrace:
bei Autodesk.AutoCAD.ApplicationServices.TransactionManager.FlushGraphics() 
bei Autodesk.AutoCAD.ApplicationServices.AppTransaction.Commit()
bei ASPT.ASPT_Main_Userform.Main()
in ...

Dieser Fehler tritt bei einem

Code:
Transaction.Commit

auf. Wobei ich mit dem FlushGraphics nichts anfangen kann 

Danke für eure Hilfe!!!

Grüße

Silvan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Silvan01
Mitglied



Sehen Sie sich das Profil von Silvan01 an!   Senden Sie eine Private Message an Silvan01  Schreiben Sie einen Gästebucheintrag für Silvan01

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 14. Dez. 2009 14:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Nochmal,

in meinem Programm geht es darum aus Blockreferenzen Punkte zu finden.
Ich bin beim Visual Studio mal auf das Output-Fenster gestoßen und habe bemerkt, dass die Punkte bzw. 'ein paar' Objekte (ca. 2000 Stück  ) nicht .disposed waren.

Seid dem ich das geändert habe kam kein Error mehr.

Grüße

Silvan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 15. Dez. 2009 02:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Silvan,

nur um (für mich) sicherzugehen, dass ich nichts überlesen habe! Mit diesem:

>> Seid dem ich das geändert habe kam kein Error mehr

meinst Du, dass in obigen Einträgen keine offenen Probleme mehr bestehen?

- alfred -

------------------
www.hollaus.at



Praktikum Versuch - Muster- und Vorrichtungsbau (WiSe 24/25)
Jedes Werkzeug kann immer nur so gut sein wie der Mensch, der dahintersteckt. Deshalb suchen wir bei der Festool Group Mitarbeitende, die gemeinsam mit ihren 3.000 Kolleginnen und Kollegen weltweit etwas bewegen wollen. Tauche ein in unsere Welt ? und erlebe, wie stolz es macht, in einem Familienunternehmen die besten Elektrowerkzeuge der Welt zu bauen.

Unterstütze gemeinsam mit den Kolleg:innen ...

Anzeige ansehenPraktikum
Silvan01
Mitglied



Sehen Sie sich das Profil von Silvan01 an!   Senden Sie eine Private Message an Silvan01  Schreiben Sie einen Gästebucheintrag für Silvan01

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 15. Dez. 2009 08:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

ja genau jetzt funktionierts alles  .

Grüße

Silvan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz