Sida 1 av 1

fel i c++

Postat: 5 augusti 2004, 19:40:11
av Virr3
när jag ska skriva ett program till min knightrider så blir det felmedelande

"bcount.exe har stött på ett problem och måste avslutas"
felsök Skicka felrapport skicka inte

jag använder dev-c++


koden serut på detta vis:

Kod: Markera allt


#include <stdio.h>
#include <conio.h> /*required for _outp*/

int main()
{
	int x;
	for(x = 0;x<=255;x++)
	{
      _outp(0x378,x);
	  sleep(250);
	}
	return 0;
}
vad kan va fel?

Postat: 5 augusti 2004, 20:06:38
av mullemeck
hmm är du säker det ska va _outp? känns fel met ett underline där tycker jag..


testa annars kommentera ut den raden och se om det blir bättre om där verkligen ska va ett underline..

Postat: 5 augusti 2004, 20:12:26
av Virr3
för det blir inga fel i själva kopileringen det är det jag tycker är lite skumt..

Edit: det går inte kompilera när jag tar bort understräcket:S

Postat: 5 augusti 2004, 20:26:38
av cykze
Testa som sagt att köra utan _outp().

Är du säker på att _outp() ska ha porten först och sedan värdet och inte tvärtom?

Kör du något NT-baserat Windows så behöver du speciella drivrutiner för att kunna komma åt parallellporten på det här sättet. En heter PortIO och finns att ladda ner från internet (sök).

Postat: 5 augusti 2004, 20:31:50
av Virr3
jajmen jag har program port IO.. tycker att om de skulle vara fel i koden så skulle de uppenbara sig när jag kompilerar inte när jag ska köra programet:S

testar vb 2005 beta nu.. men vart ska ja lägga den där dll filen?

Postat: 5 augusti 2004, 20:43:21
av cykze
Har du bytt plats på porten och värdet så borde det gå att kompilera, men det borde ge en varning. Och det är inte helt omöjligt att programmet krashar som du har beskrivit. Jag säger inte att du har gjort fel, men man ska komma ihåg att ordningen på port och värde kan skilja sig mellan olika system.

Jag kan tyvärr inte hjälpa dig kring detaljerna om hur man får igång parallellporten under något NT-Windows (t ex win2000/xp).

Postat: 5 augusti 2004, 22:20:51
av Digger
Kan man verkligen använda portadressen på det där sättet mha portdrivrutinen du nämner. Mycket skeptisk. Har den inte ett eget API?

Postat: 6 augusti 2004, 00:03:31
av arvidb
Virr3 skrev:*snip* tycker att om de skulle vara fel i koden så skulle de uppenbara sig när jag kompilerar inte när jag ska köra programet:S *snip*
Hört talas om Runtime Error? :wink:

Fel man får när man kompilerar kallar "Syntax Error". D.v.s. syntaxfel.

edit: Fel i koden kan alltså uppenbara sig först när programmet körs. Sätt en variabel till noll och dela en annan variabel med den får du se (division by zero).

Arvid

Postat: 6 augusti 2004, 01:47:32
av Lallas
int _outp() :?:

Postat: 6 augusti 2004, 11:51:42
av Virr3
funkar inte:S

Postat: 6 augusti 2004, 16:24:28
av axelsonic
Vilket operativsystem kör du programmet under ?

Postat: 6 augusti 2004, 17:12:20
av Lallas

Postat: 6 augusti 2004, 18:08:09
av Virr3
jag kör xp.. fått igång så att det funkar i vb.. men jag är inte så haj på de så..

Postat: 6 augusti 2004, 19:21:02
av axelsonic
XP/win2k bygger på NT-kärnan vilket inte ger enskilda program tillåtelse att skriva direkt till hårdvaran.

Då dödar operativsystemet programmet direkt.
Vet inte om Dev-c++ har tänkt på det direkt.
Men din kod ser korrekt ut.

Jag har skrivit en LED-skylt till win9 en gång i tiden i turboc++ och min kod såg ungeför ut som din, _outportb(); stämmer och allting ser rätt ut.

Så jag misstänker att det som jag skrev längst upp kan vara problemet.
Men jag är inte helt säkert.