Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Stack Space MED KOD.

Postades av 2003-01-27 20:56:10 - Raderat konto, i forum visual basic - allmänt, Tråden har 13 Kommentarer och lästs av 467 personer

Hej, jag stöter på problem gällande "Stack Space" (error 28) "LÖST!!!", sökte på det i forumet och hitta det som Pelle skrivit. Jag vet vart, tror jag, som det blir fel men vet inte VAD som är fel så en förklaring vad "Stack Space" är kanske skulle hjälpa.

Detta inträffar efter ett tag, går väl kanske en halv dag eller mer så jag har svårt att sitta och testa.

MVH / Benny

Det Fungerar nu, gjorde lite ändringar.

Vad jag nu undrar över är vad "INTERVAL" är i min kod nedan:
Jag anropar så här:

"wait(1000)"

Vad står siffran efter wait för? sätter jag "1000" för en sekund så e det samma intervall jag får med "30000" som borde vara 30 sekunder.


<code>
Public Sub Wait(ByVal Interval As Single)


Dim TimeOut As Single

TimeOut = Timer + Interval
Do While Timer < TimeOut
Sleep 1000 ' DETTA GÖR JU ATT DET STANNAR UPP I EN SEKUND!?
DoEvents

'HÄR LÄGGER JAG KODEN SOM SKALL UTFÖRAS VAR 30:de SEKUND

Loop
wait(1000) 'DETTA FÅR DET HELA ATT BLI EN TIMER.
End Sub
</code>


Någon som förstått?:-)


Svara

Sv: Stack Space

Postades av 2003-01-27 21:15:33 - Lars Lundström.

Out of stack space (Error 28)
Possible causes for this error are:

Too many active Function or Sub calls. Check that general recursive procedures are not nested too deeply and that they terminate properly.

Local variables require more local variable space than is available. Try declaring some variables at the module level instead. You can also declare all variables in the procedure static by preceding the Property, Sub, or Function keyword with Static. Or, you can use the Static statement to declare individual static variables within procedures.

Fixed-length strings use more stack space than variable-length strings. Try redefining some of your fixed-length strings as variable-length strings.

Too many nested DoEvents statements.

Use the Calls dialog box to view which procedures are active (on the stack). To display the Calls dialog box, select the button to the right of the Procedures box in the Debug window.

Kolla länken:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q142138


Svara

Sv: Stack Space

Postades av 2003-01-28 10:22:46 - Raderat konto

Om jag lägger koden här(inte stor) så kanske någon kan testa den och se vad jag gör för fel? Har läst det ovan och förstår lite vad problemet består i men jag kan då inte lösa det. Problemet är att det tar tid innan felet kommer. Någon kanske ser direkt vad felet är.

Koden kommer ikväll.

MVH / Benny


Svara

Sv: Stack Space

Postades av 2003-01-29 10:23:13 - Raderat konto

Uppdaterat, se koden ovan.


Svara

Sv: Stack Space

Postades av 2003-01-29 10:56:34 - Sven Åke Persson

Hej
>wait(1000) 'DETTA FÅR DET HELA ATT BLI EN TIMER.

Det här ser tokigt ut , det blir sk.rekursivt anrop och då
får du Out of StackSpace efter en tid om du inte bryter förloppet.
Du får lägga denna kodrad utanför denna sub.
Varför duger inte en vanlig Timer ??
/Sven


Svara

Sv: Stack Space

Postades av 2003-01-29 11:30:04 - Johan Djupmarker

Som Sven säger blir det ett rekursivt anrop, se http://www.pellesoft.nu/login/articles/other/rekursiv.asp för en beskrivning. Man borde kunna göra såhär istället:

<code>
Public Sub Wait(ByVal Interval As Single)

Dim TimeOut As Single

While True
TimeOut = Timer + Interval
Do While Timer < TimeOut
Sleep 1000 ' DETTA GÖR JU ATT DET STANNAR UPP I EN SEKUND!?
DoEvents

'HÄR LÄGGER JAG KODEN SOM SKALL UTFÖRAS VAR 30:de SEKUND

Loop
Wend
End Sub
</code>

/Johan


Svara

Sv: Stack Space MED KOD.

Postades av 2003-01-29 12:12:35 - Andreas Hillqvist

JAg tror du redan har löst det. Men för andra som läser tråden är det nog meningen till at man inte skall lägga koden som skall köras i Wait utan anropa den från en annan sub:
<code>

Public Sub Wait(ByVal Interval As Single)
Dim TimeOut As Single
TimeOut = Timer + Interval
Do While Timer < TimeOut
Sleep 1000 ' DETTA GÖR JU ATT DET STANNAR UPP I EN SEKUND!?
DoEvents
Loop
End Sub

Public Sub Main()
Dim Index as Long
For Index = 1 to 10
'HÄR LÄGGER JAG KODEN SOM SKALL UTFÖRAS VAR 30:de SEKUND

Wait(3000) 'DETTA FÅR DET HELA ATT BLI EN TIMER.
Next
End Sub
</code>
Har begränsat det till 10 anrop. Vill man kan man även göra en evighetsloop:
<code>
Public Sub Main()
Dim Index as Long
Do
'HÄR LÄGGER JAG KODEN SOM SKALL UTFÖRAS VAR 30:de SEKUND

Wait(3000) 'DETTA FÅR DET HELA ATT BLI EN TIMER.
Loop
End Sub
</code>


Svara

Sv: Stack Space

Postades av 2003-01-29 12:27:07 - Raderat konto

Tjena Sven, jag måste köra tempmodulen i mitt termometerprojekt som en service, dvs modul, därav timer i modulen.

Andreas O Johan: Jag har testat era båda exempel och ser ingen direkt skillnad, vilken är bäst? Smak o tycke eller?

Jag har inte fått svar på vad "Wait(vad_är_detta_för_värde)"

jag menar: man skriver 1000 efter wait, varför? man skriver siffra efter sleep oxå.

om jag vill att era exempel skall utföra något var 30:e sek, vilken av dom ska ha värde 30000? Sleep eller wait?

Som jag ser nu så loopar den i 30 sek om man skriver 30000 efter wait medans den väntar i 30 sek om man skriver 30000 efter sleep?
Då känns det som att wait inte behöver ha nått efter sig?

Hur som helst: Ett STORT tack till er:)


Svara

Sv: Stack Space

Postades av 2003-01-29 12:54:33 - Sven Åke Persson

Hej igen
Undrar om du inte får lägga in en kontroll för midnattspassage
när du använder Timer.Har inte analyserat exakt vad som händer
det blir kanske bara en miss på 30 sek.
Tycker att du kan öka Sleep till 20000 eftersom detta program
inte gör något annat än att övervaka.

Förresten du kan köra sleep 60000 och skippa hela wait köret
det må väl räcka att läsa temperatur en gång i minuten.
/Sven


Svara

Sv: Stack Space

Postades av 2003-01-29 13:02:58 - Raderat konto

Det spelar ingen roll om det missar lite, tempen ändrar sig iaf.

Det va det som va frågan, SKA jag verkligen behöva Wait?

Jag kör utan så får vi se hur det går, blir ju mindre kod antar jag:-)
Så här funkar det likadant:

<code>


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub timer()





Do
Sleep 1000 ' DETTA GÖR JU ATT DET STANNAR UPP I EN SEKUND!?
DoEvents

'HÄR LÄGGER JAG KODEN SOM SKALL UTFÖRAS VAR 30:de SEKUND
MsgBox "hej"
Loop

End Sub

Sub main()
timer
End Sub

</code>
(Kolla min nya tråd under "programvaror")


Svara

Sv: Stack Space

Postades av 2003-01-29 13:12:20 - Sven Åke Persson

Hej
Funderade lite så här skulle jag angripa det.
Programmets enda uppgift är ju att kolla temperaturer
då kan det sova större delen av sitt liv.

I en bas Modul
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetInputState Lib "user32" () As Long

Public Sub Main()
Do
'Kod som läser och fixar
Sleep(60000)
If GetInputState() Then DoEvents
Loop
End Sub
/Sven


Svara

Sv: Stack Space

Postades av 2003-01-29 13:14:20 - Raderat konto

<If GetInputState() Then DoEvents

Vad gör denna rad?


Svara

Sv: Stack Space

Postades av 2003-01-29 13:48:34 - Sven Åke Persson

Hej
Förmodligen vet du redan,men den gör ingen skada.
"Har de vatt nått" betyder det ungefär.
Behövs nog inte här eftersom det gäller mus eller tangentbord.
Som sagt den gör ingen skada,vet inte hur det blir med Ctrl Alt Delete.
/Sven


Svara

Sv: Stack Space

Postades av 2003-01-29 17:05:15 - Raderat konto

Okidoki Sven, koden minskar och allt verkar frid och fröjd:-)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
538
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies