Hallo
Gibt es eine Möglichkeit ein Makro zu Beginn der SolidWorks-Sitzung automatisch zu starten? Das mit: "-m "c:\Pfad\Makro.swp"" funktioniert nicht.
Der Laufzeitfehler wird vom VBA Compiler direkt erzeugt, nicht vom Makro. Deshalb kann ich diesen auch nicht mit einer Fehlerbehandlung abfangen und die MsgBox sieht bei der Fehlermeldung auch anders aus.
Der VBA Generator in SW arbeitet, wie ein Programmierer mir sagte, "on demand" Das Projekt liegt uncompelliert vor. Und wird nach Bedarf als Maschinencode erzeugt. Jetzt rufe ich die SUB auf, der Compiler schreibt seinen Maschinencode. Und da gibt es einen Stack Overflow. Der Stapelspeicher ist ein schneller Speicher aber begrenzt. Mit VBA- Mitteln nicht vergrößerbar.
Mit denm Zusatz "static" kann ich ganze Routinen in einen anderen, fast unbegrenzten Speicher laden. Dann kommt die Fehlermeldung beim Compellieren der main(). Und diese bekomme ich nicht in den anderen Speicher. (probiert)
Wenn SW frisch gestartet ist, ist der Stack wohl leer. Dann kann das Makro compeliert werden und bleibt dann im Speicher. Wie SW selbst einen Stack Overflow verhindert weiß ich nicht. Aber VBA ist wohl nicht berücksichtigt. Je mehr mit SW gemacht wurde, desto wahrscheinlicher kommt der Fehler beim Erststart des Makros.
Oder gibt es eine Möglichkeit das Makro einmal zu compellieren und verlinken und dann so abzuspeichern?
[Diese Nachricht wurde von KSAH am 01. Aug. 2023 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP