Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Exe aus VB6 deutlich langsamer als VBA?

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:  Exe aus VB6 deutlich langsamer als VBA? (2380 mal gelesen)
schrema
Mitglied
Umweltingenieur


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

Beiträge: 12
Registriert: 21.02.2006

erstellt am: 23. Feb. 2006 13:48    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, miteinander,

ich habe einen recht umfangreichen Code mit vielen Zeichnungsaktionen von VBA in VB konvertiert und daraus eine exe erstellt. Wenn ich diese exe nun unter AutoCAD ablaufen lasse, dauert dies deutlich länger als das Makro aus der dvb. Ist dies ein unvermeidliches Problem bei umfangreicheren Programmen oder gibt es irgendeinen Trick, der exe auf die Sprünge zu verhelfen.

Vielen Dank.

MfG
Marco Schreiter

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 23. Feb. 2006 23:13    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 Nur für schrema 10 Unities + Antwort hilfreich


Vergleich.zip

 
Hallo Macro,

ich habe dir meine Tests nochmal zusammengestellt.

in der DVB gibt es eine Sub Main im Modul1. Die Startet die VBA Variante.
Im Modul2 der Start für die DLL Variante. Wenn du die DLL ohne Compiler nutzen willst, musst du sie mit "REGSVR32 TestDll" auf der Commandozeile registieren.

Das Progi macht ca. 10000 Punkte in AutoCAD
VBA mit Deklaration als ACADTYP (early bindung) 2 sec.
VBA mit Deklaration als OBJECT(late bindung) 3 sec.
VB6 als Exe 88 sec.
VB6 Dll aus VBA aufgrufen mit late Binding 2 sec.

Ich glaube die DLL Methode ist die beste wenn der Code nicht
einsehbar sein soll.

Stelli

[hatte den Anhang vergessen]
------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

[Diese Nachricht wurde von Stelli1 am 23. Feb. 2006 editiert.]

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

schrema
Mitglied
Umweltingenieur


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

Beiträge: 12
Registriert: 21.02.2006

erstellt am: 24. Feb. 2006 10:24    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

Danke, Stelli1

für diesen Tip sind 10 Unities eigentlich viel zu wenig!

Danke nochmal

MfG
Marco Schreiter

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

yamaha
Mitglied
Konstrukteur


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

Beiträge: 374
Registriert: 19.05.2004

Autocad/Inventor 2017, Windows 7 Pro 64Bit

erstellt am: 04. Apr. 2006 00:46    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 Nur für schrema 10 Unities + Antwort hilfreich

Hallo Stelli,

Ich find Marco hat recht. 10 Punkte sind zu wenig.

Super Beispiel.

------------------
Gruß Jörn

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

fuchsi
Mitglied
Programmierer c#.net Datawarehouse


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

Beiträge: 1201
Registriert: 14.10.2003

AutoCad Version 2012 deu/enu
<P>Windows 7 64bit

erstellt am: 11. Apr. 2006 14:08    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 Nur für schrema 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Stelli1:
VB6 als Exe 88 sec.
VB6 Dll aus VBA aufgrufen mit late Binding 2 sec.

ist ja auch logisch.

Die DLL wird ja aus Autocad heraus gestartet, und läuft demnach im Thread von Autocad. Hier kann die DLL direkt mit Autocad reden.

Die EXE läuft ja als eigener Thread und holt sich über die Microsoft COM Schnittstelle eine Instanz vom Autocadobjekt. Hier ist immer das Betriebssystem involviert.

Ausserdem hat die EXE-Version noch einen großen Nachteil : wenn 2 Autocadsitzungen laufen, holt sie sich immer die zuletzt gestatete Sitzung. Bei der DLL-Version übergibst du ja der DLL die gewünschte Sitzung.

Etwas Laienhaft erklärt, aber so in etwas läufts ab.

------------------

Ing. Anton Fuchs
WWW.FFZELL.AT.TC

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

giman
Mitglied
Konstrukteur, Rohrleitungsbau und Rentner


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

Beiträge: 217
Registriert: 19.06.2005

erstellt am: 12. Jan. 2007 16:26    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 Nur für schrema 10 Unities + Antwort hilfreich

@Stelli1, @fuchsi

Prima Tips. Kommen für mich genau richtig.
Hatte selbst mal daran gedacht DLL's zu erstellen, um den Programmkode nicht einsehbar zu gestalten. Eure Hinweise
nennen dazu noch den Vorteil der hohen Verarbeitungsgeschwindigkeit.

Auch vom mir je 10 Unitis
und ein gutes Jahr 2007
giman

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