Autor
|
Thema: VB Error auf XP32/64bit (1598 mal gelesen)
|
ChrisHH Mitglied F&E
Beiträge: 11 Registriert: 31.05.2012 HP Z400 64bit Catia V5 R16 + R18 VB6
|
erstellt am: 05. Jun. 2012 11:22 <-- editieren / zitieren --> Unities abgeben:
Moin, auf wenn das eigentlich keine Catia Frage ist, stelle ich sie trotzdem hier, da es ein VB Problem ist. Ich hoffe das stellt kein Problem dar. Nun zu meinem Problem: Ich hab eine Programm für Automatisierte Konstruktionsschritte in V5 geschrieben. Auf meinem Rechner (xp 64bit) funktioniert das auch alles wunderbar. Leider hat es auf anderen Testrechnern Probleme gegeben. Dabei spielte es keine Rolle ob es ein 32bit oder 64bit XP war. Die Fehlermeldungen waren die selben. Zu sehen in den angehängen screens. Beim ersten Start des Programms kommt immer die erste und dann die zweite Meldung. Beim zweiten Versuch das Programm zu starten gibt es nur noch die zweite Meldung. Aufgrund der Fehler überprüfte ich die Verweise, wo ich unterschiede zwischen meinem und den Testrechnern feststellte. Bei mir waren die MS Forms 2.0, MS common dialog control 6.0 und MS shell auf den Ordner c:\windoof\syswow64 verlinkt. Auf den anderen Rechnern fehlte eben dieser Link, weil der Ordner nicht vorhanden ist Wieso das der Fall ist, obwohl es die gleichen Systeme sind, ist mir völlig unklar. Kennt hier jemand as Problem und hat vielleicht eine Lösung parat? Grüße aus Hamburg, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 05. Jun. 2012 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
|
ChrisHH Mitglied F&E
Beiträge: 11 Registriert: 31.05.2012 HP Z400 64bit Catia V5 R16 + R18 VB6
|
erstellt am: 05. Jun. 2012 11:52 <-- editieren / zitieren --> Unities abgeben:
Sorry, VBA 6.5, das vergaß ich zu erwähnen. Wenn ich über Excel den VB Editor öffnen kann, bedeutet das nicht automatisch das alles notwendige zum benutzen von VBA projekten installiert ist? Falls nicht, könnte das natürlich der Grund sein. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 05. Jun. 2012 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
|
ChrisHH Mitglied F&E
Beiträge: 11 Registriert: 31.05.2012 HP Z400 64bit Catia V5 R16 + R18 VB6
|
erstellt am: 05. Jun. 2012 13:03 <-- editieren / zitieren --> Unities abgeben:
ok. Gut zu wissen. Allerdings benutzen die User der Testrechner bereits Catia VB scripte, was bedeutet das das VBA Packet für Catia wohl installiert ist. Kann das nicht doch etwas mit dem Ordner "C:\WINDOWS\SysWOW64" zutun haben? Der ist wie gesagt nur bei mir vorhanden und beherbergt viele .dll's und .ocx's usw. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 05. Jun. 2012 13:12 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
Zitat: Original erstellt von ChrisHH: Kann das nicht doch etwas mit dem Ordner "C:\WINDOWS\SysWOW64" zutun haben? Der ist wie gesagt nur bei mir vorhanden und beherbergt viele .dll's und .ocx's usw.
Naja ein "normaler" 32bit-Rechner hat diesen Ordner nicht. Da liegen die Bibliotheken wo anders bzw. in System32. Ich weis ja nicht, wie du deklariert bzw. wie du die Bibliotheken angezogen hast. Bei System-/Windowsfunktionen deklariere ich die meist und hole mir nicht die ganze Bibliothek. Was den Vorteil hat, dass das Programm eben auf die registrierten Methoden zurückgreift und nicht direkt auf die DLL etc.. Aber VBA lässt doch garnicht soviel zu?¿ Ich frage mich gerade, was du falsch gemacht haben kannst. Ich selbst kenne das Problem an sich nämlich nicht und wenn dann nur, dass das Programm als 64bit-Programm kompiliert wurde und dann natürlich garnicht erst unter 32bit läuft. In der Regel, muss man das aber extra definieren. ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 05. Jun. 2012 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
WOW64 brauchste nur auf 64bit Rechnern um die 32bit-Sachen entsprechend handhaben zu können. Nutzt Du Sachen daraus? Dan nrate ich Dir davon ab, vor allem von den OCX-Sachen. Das ist alles Mist, Du weißt nie ob es auf dem Zielrechner vorhanden ist und ob nicht eine andere Applikation die Sachen mit älteren Dateien überschrieben hat, da es kein ordentliches Management gibt. Mit dem WinSxS-Geraffel wird's etwas besser aber immer noch nicht perfekt. Ich behaupte also: Du nutzt einfach Verweise, die es am Ziel nicht gibt, vermutlich, weil Du eine Entwicklungsumgebung auf dem Rechner hast. Aber auch M$ schaltet gern mit Patches das Kill-Flag auf diese Dialog-Klassen, wie bei der RichTextBox, damit man damit kein "Schindluder" mehr treiben kann. Dennoch könntest Du mal versuchen auf dem Zielrechner VBA 6.5 von der Dassault-CD zu installieren und /regserver auf die CNEXT.exe auszuführen um die DLL's zu linken. CATScript ist nicht gleich VBA, das wird anders emuliert und gehandhabt. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChrisHH Mitglied F&E
Beiträge: 11 Registriert: 31.05.2012 HP Z400 64bit Catia V5 R16 + R18 VB6
|
erstellt am: 05. Jun. 2012 15:49 <-- editieren / zitieren --> Unities abgeben:
Also ich nutze zB. die shell32 für die folder dialog funktionen. Auch brauche ich die comdlg32.ocx bisher. Wenn das allerdings nicht zu empfehlen ist, muss ich vielleicht nach Alternativen suchen. Deine Behauptung mit den Verweisen die nicht auf dem Testrechner sind teile ich. Es ist auch eindeutig zu sehen das einzelne verweise nicht richtig funktionieren, bzw keine Quelldatei vorhanden ist. Die Frage ist nun, wie kann ich denn nun auf die alten 32bit dll's usw. verweisen? Ich hab schon versucht den entsprechenden verweis neu in C:\WINDOWS\system32 zu verweisen, jedoch funktioniert das nicht. Der quellpfad wird mir weiterhin als C:\WINDOWS\SysWOW64 angezeitg. Grüße, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 06. Jun. 2012 11:49 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
Wofür brauchst Du die comdlg32.ocx? Dateioperationen kann das CATIA-Objekt auch ausführen, wäre auch viel sauberer, da dann z.B. Plattformunabhängiger (manchmal muss es ja auch unter Unix und Co laufen). Schau mal in CATIA.FileSystem. FileOpen-Dialoge und Co kannst Du auch vom CATIA nutzen, wenn Du User-Interaktionen brauchst. Edit: o Func FileSelectionBox( CATBSTR iTitle, CATBSTR iExtension, CatFileSelectionMode iMode) As CATBSTR Displays a modal dialog box which can be used to select / enter the name of a file to open / save. Parameters: iTitle The title of the dialog box. iExtension A file extension filter. iMode The mode in which to run the dialog box (either CatFileSelectionModeOpen or CatFileSelectionModeSave. oFilePath The return string containing the full path of the selected file, or a zero-length string if the user selects Cancel. Example: This example asks the user to select a text file and prints the path of the selected file. filepath = CATIA.FileSelectionBox("Select a text file", "*.txt", CatFileSelectionModeOpen) CATIA.SystemServices.Print "The selected file is " & filepath ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 06. Jun. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |