Toon posts:

[C++] Executable werkt wel, maar source niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb aan mijn lpt poort een ledje gehangen. Nu heb ik op internet wat dingen hierover lopen opzoeken en ook wat gevonden. Er zat een executable bij en als ik die uitvoerde dan ging het ledje keurig knipperen. Als ik de source opende in borland C++ 5.02 dan krijg ik de hele tijd de error "Called to undefined function _outp" Terwijl ik toch echt de conio.h heb(deze heb je nodig om de functie te kunnen gebruiken). Weet iemand hoe ik dit zou kunnen oplossen??? De source van het programma is trouwens als volgt:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//switch led on /off in C++

#include <conio.h>

int main()
{
    int counter;
    //10 loops
    for(counter = 0;counter<=9;counter++)
    {
    outp(0x378,1); //output is high
    sleep(250); //250 mS delay
    outp(0x378,0); //output is low
    sleep(250);
    }

    return 0;
}

[ Voor 14% gewijzigd door Verwijderd op 01-05-2003 15:38 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

tip: zet je code tussen [code=c++]...[/code] tags voor highlighting. Oh, en een gecompilede versie van je source heet een executable ;)

outp () is geen ANSI C functie, misschien dat Borland 'm daarom niet accepteert. Overigens, VC++ lost dit op door er een underscore voor te zetten om aan te geven dat het niet standaard is, zoals in jouw code. Maar misschien doet Borland dit juist niet. Probeer die underscores eens weg te halen?

[ Voor 3% gewijzigd door .oisyn op 01-05-2003 15:26 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
.oisyn schreef op 01 May 2003 @ 15:26:
tip: zet je code tussen [code=c++]...[/code] tags voor highlighting. Oh, en een gecompilede versie van je source heet een executable ;)

outp () is geen ANSI C functie, misschien dat Borland 'm daarom niet accepteert. Overigens, VC++ lost dit op door er een underscore voor te zetten om aan te geven dat het niet standaard is, zoals in jouw code. Maar misschien doet Borland dit juist niet. Probeer die underscores eens weg te halen?
Zonder underscores werkt dit ook niet :(

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Zet je cursor eens op die outp functie en druk eens op F1.
Als die functie bestaat in Borland C++, dan zal je er uitleg over krijgen en zal je ook zien welke header je moet includen.
Kent Borland ze niet, dan zal je geen info krijgen natuurlijk.

https://fgheysels.github.io/


Verwijderd

Topicstarter
hij kent ze wel. Dit is wat ie ervan zegt:
Syntax

#include <conio.h>
int outp(unsigned portid, int value);

Description

Outputs a byte to a hardware port.
outp is a macro that writes the low byte of value to the output port specified by portid.
If outp is called when conio.h has been included, it will be treated as a macro that expands to inline code. If you don't include conio.h, or if you do include conio.h and #undef the macro outp, you'll get the outp function.

Return Value

outp returns value.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Is die error een compiler of linker error? Ik val namelijk een beetje op dit punt van je helpfiles:
If outp is called when conio.h has been included, it will be treated as a macro that expands to inline code.
D'r hoort helemaal geen functieaanroep te gebeuren daar dus.

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op 01 mei 2003 @ 16:34:
Is die error een compiler of linker error? Ik val namelijk een beetje op dit punt van je helpfiles:

[...]

D'r hoort helemaal geen functieaanroep te gebeuren daar dus.
Ik snap nie helemaal wat je hier nu mee bedoelt. Hoe zou het volgens jou dan wel moeten??

Verwijderd

Topicstarter
ok dan, het werkt nu. Ik heb dit ervoor gezet:

#undef outp(0x378,1);

bedankt voor de hulp

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

#undef wil zeggen dat je een functie of macro 'uit'definieert. En alleen #undef outp zou al genoeg zijn.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?

Pagina: 1