| |
Fortgeschrittene ProgrammierungRun-Time error མ' | | | Autor: caramba | Datum: 17.01.10 09:35 |
| Hallo,
um meine Applikation in einem simulierten End-User-Umfeld zu testen,
habe ich diese auf einem sauberen PC installiert. Sowohl mein Ent-
wicklungsrechner wie auch der saubere PC haben 1GB Memory.
Wenn ich nun auf dem Testrechner einen Druck-Job starte, erhalte ich
den Error '28' - Out of stack space. Ich habe mehrere Druckprogramme
getestet; bei allen das gleiche (negative) Resultat.
Ich arbeite mit VB6, sev-Tools und zum Druck List & Label 15 unter XP.
Kann mir hier jemand weiterhelfen?
Danke
Rainer | |
Re: Run-Time error མ' | | | Autor: Preisser | Datum: 17.01.10 17:54 |
| Hi,
vermutlich wird eine Sub/Funktion so oft rekursiv ausgerufen, dass der von Windows zugewiesene Stapelspeicher überläuft. Dies kann man beispielsweise so simulieren:
Option Explicit
Dim i As Long
Private Sub EndlosAufruf()
On Error Resume Next
i = i + 1
Err.Clear
EndlosAufruf
If Err.Number <> 0 Then MsgBox i & " - " & Err.Number & " - " & _
Err.Description
End Sub
Private Sub Form_Load()
EndlosAufruf
End Sub Nachdem die EndlosAufruf-Sub sich ungefähr 3300x selbst aufgerufen hat, erscheint der angegebene Runtime Error nur 28 - "Nicht genügend Stapelspeicher". Dieses Problem tritt u. a. bei rekursiven Algorithmen, wenn sie sich zu oft selbst aufrufen. Die Anzahl an Aufrufen hängt auch von den in der Sub/Funktion verwendeten Variablen ab, da diese ja alle auf dem Stack gelagert werden. | |
Re: Run-Time error མ' | | | Autor: caramba | Datum: 17.01.10 18:37 |
| Hallo,
die Vermutung habe ich auch schon gehabt; jedoch keine Ursache
gefunden. Unverständlich ist nur, dass die Programme auf dem
Entwicklungsrechner problemlos laufen - und da habe ich auch
nur 1GB Memory.
Gruss
Rainer | |
Re: Run-Time error མ' | | | Autor: ManfredV | Datum: 21.01.10 17:55 |
| Ich würde versuchen, mit einem Dateiprotokoll zu arbeiten.
Ich würde dann beispielsweise einen Text "Job Start" in eine Datei schreiben, wenn die Prozedur zum Starten des Druckjobs aufgerufen wird und sowas wie "Job End", wenn die Prozedur beendet wird.
Wenn sich dann am Ende nur die beiden Zeilen "Job Start" und "Job End" in der Datei befinden, es aber trotzdem zu dem von Dir beschriebenen Fehler kommt, dann müssen all die Prozeduren, die von eben dieser Prozedur aufgerufen werden, ebenso mit einer Protokollierung versehen werden - am besten natürlich mit unterschiedlichen Texten, damit Du unterscheiden kannst, welche Prozedur nun genau aufgerufen oder beendet wird.
Wenn Du das konsequent bis zum Ende durchführst, dann gibt es zwei Möglichkeiten:
1. Irgendwann enthält das Protokoll quasi unendliche Einträge ein und derselben Prozedur mit "Job Start" - dann hast Du den Übeltäter gefunden.
2. Das Protokoll sieht normal aus, der Fehler tritt aber immer noch auf. Dann liegt das Problem in einer der Komponenten, die Du aufrufst. Aber wenn Du Dir das Protokoll anschaust unmittelbar nachdem dieser Fehler aufgetreten hast, dann kannst Du aufgrund des letzten Eintrags möglicherweise die Komponente identifizieren, die fehlerhaft arbeitet.
Merkwürdig bleibt natürlich, dass Dein Programm auf einem Rechner läuft, auf dem anderen nicht. Ist auf beiden Rechnern dasselbe Betriebssystem mit exakt denselben Service Packs und Patches?
Beitrag wurde zuletzt am 21.01.10 um 17:56:27 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|