Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  Pro/Toolkit - Zugriffsverletzung durch ProSolidFeatVisit()

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 PTC CREO
Autor Thema:  Pro/Toolkit - Zugriffsverletzung durch ProSolidFeatVisit() (1275 mal gelesen)
DextraDei
Mitglied
Student

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

Beiträge: 6
Registriert: 18.05.2013

i5-3210M
nVidia GeForce GT 640M
Windows 7 x64
Creo 2.0 Students-Version (32-bit)
Pro/Toolkit von Creo 1.0
Visual Studio 2010

erstellt am: 18. Mai. 2013 20:04    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


Archive.zip

 
Hallo liebe CAD-Freunde,

ich bearbeite gerade eine Projektarbeit in der ich mit Pro/Toolkit einen Converter programmieren soll, welcher ein CAD-Model (Creo) in ein DHM-Model (OpenSim) exportieren soll.
Ich arbeite neben Pro/Toolkit (Creo 1.0) noch mit der OpenSim-API (v3.0) und deshalb mit der 32-bit-Version.
Als IDE und Compiler nutze ich das MS Visual Studio 2010.
Zum Testen nehme ich eine Creo 2.0 Students Version.

Das Programm funktioniert so, dass jedes Features eines Modells und bei Baugruppenfeatures deren Verbindungen analysiert werden und dann in ein für OpenSim lesbares Format übersetzt werden. Dies geschieht mittels der TK-API-Funktion "ProSolidFeatVisit", welche eine von mir geschrieben Funktion auf jedes Feature anwenden sollte.

Das funktioniert im Großen und Ganzen auch. Jedoch habe ich einige Beispiele gefunden, bei denen das Programm abstürzt. Grund dafür ist laut Debugger die Zeile:
  "ProSolidFeatVisit((ProSolid)mdl, VisitAssembly, FilterProFeatComponent, &asmData);"
Dieser Befehl ruft "void __cdecl _unlockexit(void)" aus crt0dat.c (VisualStudio-Source-Verzeichnis) auf und dort meldet der Debugger: "Unbehandelte Ausnahme bei 0x76f215de in c2os.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x29c31170"

Lustiger Weise passiert das nur bei bestimmten Baugruppen und auch nur, wenn vorher nicht schon ein Exportvorgang eines anderen Modells erfolgreich war.

Ich poste anbei Quellcode sowie die Bauteile bg2.asm und test_euler.asm (natürlich mit den dazugehörigen Bauteilen). "bg2" lässt sich exportieren, "test_euler" verursacht hingegen den oben angesprochenen Fehler außer "bg2" wurde in der selben Sitzung schon erfolgreich exportiert. Der Quellcode ist etwas abgespeckt, aber immernoch umfassend. Der Fehler tritt in der Funktion "int FunctionCollectAssemblyInfo()" auf (Zeile 178).

Ich hoffe ich habe das Problem ausreichend beschrieben und ihr könnt mir helfen, denn ich habe keine Ahnung warum das passiert. Sollte ich etwas vergessen haben, sagt mir Bescheid, dann liefer ich nach.

Viele Grüße
Dex

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

DextraDei
Mitglied
Student

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

Beiträge: 6
Registriert: 18.05.2013

i5-3210M
nVidia GeForce GT 640M
Windows 7 x64
Creo 2.0 Students-Version (32-bit)
Pro/Toolkit von Creo 1.0
Visual Studio 2010

erstellt am: 30. Mai. 2013 17:49    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

Für alle die ein ähnliches Problem haben:

Ich konnte meins lösen. Fehler lag nicht in der Verwendung der TK-API, sondern in meiner Heap-Verwaltung. Habe einfach nochmal alles was Speicher anfordert angeschaut und überarbeitet.
Die TK-API hat wohl je nach Baugruppe versucht den Pointer auf die von der ProSolidFeatVisit aufgerufenen Funktion dort hin zu schreiben wo ich einen Speicherüberlauf produziert hatte, deshalb der Fehler beim Aufruf dieser Funktion.

Das Thema kann geschlossen werden.

Viele Grüße
Dex

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