Avatar billede xafion Nybegynder
20. marts 2001 - 23:25 Der er 16 kommentarer og
3 løsninger

Programmet har udført ulovlig handling

Hej
Jeg programmerer aktivt I VB omkring 8 timer om dagen, og sjovt nok er min kode begyndt at lave Ulovlig handling fejl. Både i compileren og i exefiler.

Fejlen laver ulovlig handling. Så det er ikke muligt at debugge.

Sagen er at min kode virker fint det ene øjeblik. 30 min senere, uden at have lavet om på noget, virker det ikke.

( HUH !? )

Mit program lukker bare ned uden videre.

Programmet ser ud til at fucke up ved registrerings handlinger, samt når maskinen lukker ned.

Sagen er igen at koden har / virker udemærket. Men lige pludselig gider den bare ikke mere.

Fejlen opstår i en eller anden OLEAUB eller lign.  ( OLE* ) .dll

Svar udbedes snarest muligt.
Avatar billede hoejrup Nybegynder
21. marts 2001 - 07:17 #1
Warning

You should save or back up essential files and programs before using functions and subroutines in DLL files. Passing an invalid argument to a function can result in unstable system behavior.

Link til opdatering af dit program, hvis du anvender Visual Studio:

http://support.microsoft.com/support/kb/articles/Q172/6/10.ASP


/per
Avatar billede xafion Nybegynder
21. marts 2001 - 11:03 #2
Jeg har Visual Basic 6.0 Enterprise
Avatar billede hoejrup Nybegynder
21. marts 2001 - 11:16 #3
Har du prøvet at opdatere din MDAC?

http://www.microsoft.com/data/download.htm

/per
Avatar billede xafion Nybegynder
21. marts 2001 - 15:48 #4
Hej.
Jeg har lige installeret Service Pack 5 så det er nok ikke det.
:(

Synderen er OLEAUT32.DLL
Avatar billede xafion Nybegynder
21. marts 2001 - 16:04 #5
VB6 forårsagede en ugyldig sidefejl i
modul OLEAUT32.DLL på adressen 0167:65341543.
Indhold af registrene:
EAX=006d0340 CS=0167 EIP=65341543 EFLGS=00010202
EBX=007ff0d8 SS=016f ESP=007ff068 EBP=007ff194
ECX=00000002 DS=016f ESI=00005353 FS=2c1f
EDX=817078a8 ES=016f EDI=0066e790 GS=0000
Byte ved CS:EIP:
8b 16 8b c8 83 c2 15 83 e2 f0 52 56 e8 04 00 00
Indhold af stakken:
00683a7d 0fc00970 00005357 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 VB6 forårsagede en ugyldig sidefejl i
modul OLEAUT32.DLL på adressen 0167:65341543.
Indhold af registrene:
EAX=006d0340 CS=0167 EIP=65341543 EFLGS=00010202
EBX=007ff0d8 SS=016f ESP=007ff068 EBP=007ff194
ECX=00000002 DS=016f ESI=00005353 FS=2c1f
EDX=817078a8 ES=016f EDI=0066e790 GS=0000
Byte ved CS:EIP:
8b 16 8b c8 83 c2 15 83 e2 f0 52 56 e8 04 00 00
Indhold af stakken:
00683a7d 0fc00970 00005357 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 VB6 forårsagede en ugyldig sidefejl i
modul OLEAUT32.DLL på adressen 0167:65341543.
Indhold af registrene:
EAX=006d0340 CS=0167 EIP=65341543 EFLGS=00010202
EBX=007ff0d8 SS=016f ESP=007ff068 EBP=007ff194
ECX=00000002 DS=016f ESI=00005353 FS=2c1f
EDX=817078a8 ES=016f EDI=0066e790 GS=0000
Byte ved CS:EIP:
8b 16 8b c8 83 c2 15 83 e2 f0 52 56 e8 04 00 00
Indhold af stakken:
00683a7d 0fc00970 00005357 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 VB6 forårsagede en ugyldig sidefejl i
modul OLEAUT32.DLL på adressen 0167:65341543.
Indhold af registrene:
EAX=006d0340 CS=0167 EIP=65341543 EFLGS=00010202
EBX=007ff0d8 SS=016f ESP=007ff068 EBP=007ff194
ECX=00000002 DS=016f ESI=00005353 FS=2c1f
EDX=817078a8 ES=016f EDI=0066e790 GS=0000
Byte ved CS:EIP:
8b 16 8b c8 83 c2 15 83 e2 f0 52 56 e8 04 00 00
Indhold af stakken:
00683a7d 0fc00970 00005357 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Avatar billede xafion Nybegynder
21. marts 2001 - 16:04 #6
Øhm

Fedt..
VB6 forårsagede en ugyldig sidefejl i
modul OLEAUT32.DLL på adressen 0167:65341543.
Indhold af registrene:
EAX=006d0340 CS=0167 EIP=65341543 EFLGS=00010202
EBX=007ff0d8 SS=016f ESP=007ff068 EBP=007ff194
ECX=00000002 DS=016f ESI=00005353 FS=2c1f
EDX=817078a8 ES=016f EDI=0066e790 GS=0000
Byte ved CS:EIP:
8b 16 8b c8 83 c2 15 83 e2 f0 52 56 e8 04 00 00
Indhold af stakken:
00683a7d 0fc00970 00005357 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Avatar billede xafion Nybegynder
21. marts 2001 - 16:08 #7
Jeg skal bruge en løsning. ASAP!


Mobil: 40 11 67 44
Du kan enten skrive en SMS eller ringe..
Avatar billede hoejrup Nybegynder
21. marts 2001 - 17:53 #8
Jeg har kigget lidt i forskellige links, og tilsvarende fejl skyldes at der mangler en software patch. Således at du undgår en konflikt imellem styresystemet og programmet.

Jeg vender tilbage i aften.

/per
Avatar billede hoejrup Nybegynder
21. marts 2001 - 19:32 #9
Hvis du anvender windows 2000, så skal du huske at opdatere med Service Pack 1:

http://www.microsoft.com/DirectAccess/Products/win2000.svr/servicepack.asp

/per
Avatar billede xafion Nybegynder
22. marts 2001 - 10:24 #10
Jeg kører W98..

Men hvis nu jeg installerer en servicepack... er kunden så også nød til at installere den?
Avatar billede jennemaan Nybegynder
22. marts 2001 - 10:29 #11
Der sker sandsynligvis en fejl i en komponent du bruger i din app. Har du checket at du f.eks. bruger ado korrekt? -Jeg har oplevet lign. fejl med ado som synder, da jeg var kommet til at sætte nogle gale parametre på et recordset objekt.

Det at fejlen sker i oleaut32.dll tyder på at det er en ekstern com-komponent der forårsager styrtet. -Hvis en in-process com-komponent styrter ned, har de en tendens til at rive hele den procID ned som de er kaldt fra. I yderste konsekvens ville det være vb6 (da den har det oprindelige procID for applikationen).

Check altså brugen af eksterne com-komponenter.

Nu ved jeg ikke hvor omfangsrigt dit program er, men en mulighed ville være at lave en log-funktion der logger procedurenavn/funktionsnavn umiddelbart før du refererer com-komponenterne. Kør programmet og se hvad den sidste log-entry var før programmet styrtede.

/Jennemaan
Avatar billede hoejrup Nybegynder
22. marts 2001 - 10:47 #12
Lidt flere informationer om OLE og VB 6:

http://support.microsoft.com/support/kb/articles/Q190/1/30.ASP

/per
Avatar billede hoejrup Nybegynder
22. marts 2001 - 10:49 #13
Ifølge linket: Olepro32.dll - Placeholder file for old DLL (still must be used).

/per
Avatar billede xafion Nybegynder
22. marts 2001 - 10:58 #14
I did.

Jeg har prøvet alt.. Og det endte med at jeg bare slettede alt min kode modul efter modul... ended up catching this:

Dim WindowsRoot As String
    WindowsRoot = RegReadString(HKEY_LOCAL_MACHINE, \"Software\\Microsoft\\Windows\", \"CurrentVersion\", \"SystemRoot\")


Sagen er.. sjovt nok.. at fejlen ikke gentager sig når man bare kører den kode; så det er højst sandsynligt i forbindelse med en funktion der læser / skriver til system.ini ( hvor jeg skulle bruge win dir )

Jeg fik løst problemet ved bare at fjerne den :)

Og som sagt, så skete det faktisk da jeg prøvede at læse / skrive til ini ( og reg )

Så jeg ved ikke hvem af dem der er synderen. Men en ting er sikkert. Microsoft er nogle fjolser.

Højrup får 70 point får sin dydige indsats, som dog ikke var megen hjælp.
Jennemann får 30 point.
Avatar billede hoejrup Nybegynder
22. marts 2001 - 10:58 #15
Service Pack 5 indeholder følgende filer:

FileName    Version      Size
Asycfilt.dll 2.40.4275.1  144 KB (147,728 bytes)
Comcat.dll  4.71.1460.1  21.7 KB (22,288 bytes)
Msvbvm60.dll 6.0.89.64    1.32 MB (1,388,544 bytes)
Oleaut32.dll 2.40.4275.1  584 KB (598,288 bytes)
Olepro32.dll 5.0.4275.1    160 KB (164,112 bytes)
Stdole2.tlb  2.40.4275.1  17.5 KB (17,920 bytes)

Så det har intet at gøre med mit tidligere svar 21/03 2001 11:16:09 vedrørende MDAC ( Microsoft Data Access Components )

link: http://www.microsoft.com/data/download.htm

Jeg læste nemlig et sted at hvis ikke den var opdateret, så kunne VB godt blive ustabil.

/per

Avatar billede xafion Nybegynder
22. marts 2001 - 11:00 #16
Btw:
Jeg downloaded Jet 4.0 , MDAC 2.6 RTM og Service Pack 5. Intet hjalp.
Avatar billede jennemaan Nybegynder
22. marts 2001 - 11:05 #17
min erfaring er at man bør undgå at udvikle under win98 og win me. win nt el. win2k er langt mere stabilt...

/Jennemaan
Avatar billede hoejrup Nybegynder
22. marts 2001 - 11:05 #18
Ok, så kan vi ikke gøre ret meget mere i den sag.

/per
Avatar billede xafion Nybegynder
22. marts 2001 - 11:11 #19
As far as I\'m concerned, er min min maskine ikke gået ned siden... Januar eller deromkring.

Ikke en eneste gang.

Det er ikke Windows der er ustabilt (oook - > Windows Me!) men derimod programmerne der ikke er udviklede til den brugte platform.

Dvs. at man som programmør , hvis man går efter målegruppen med Windows Me ( den er stor.... :/ )  så bør man udvikle i Windows Me.
Derimod er Windows 98 god for Windows 98 og Windows 2000 god for Windows2k / NT.

Jeg skal bruge mit program på Windows 98 platformen basalt da det er det de fleste kører.

+ min erfaring med Windows2k er, ja , ok, at den kører stabilt, men på min arbejdsplads har de en W2k (server) og den hakker som bare fandens..

Det er en 700 mhz Pentium 3 256ram

Stabilt? OK. Men jeg kan ikke bruge det til en skid, for Windows 98 er mere end godt nok til mig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester