C++ dos linking

Pagina: 1
Acties:

  • MADG0BLIN
  • Registratie: Juni 2001
  • Laatst online: 16:59
Als ik een programma van dos wil linken met een eigen gemaakt c++ programma hoe doe ik dat dan? vb:

#include <dos.h>
void main()
{
cout <<"starting"<< endl;
exec winamp.exe;
getch();
}

Verwijderd

Op woensdag 19 september 2001 11:21 schreef MADG0BLIN het volgende:
Als ik een programma van dos wil linken met een eigen gemaakt c++ programma hoe doe ik dat dan? vb:

#include <dos.h>
void main()
{
cout <<"starting"<< endl;
exec winamp.exe;
getch();
}
Je wil deze source in een ander dos-programma in te bouwen?

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 20:54

Cyphax

Moderator LNX/AI
Volgens mij bedoelt ie dat ie winamp wil starten vanuit z'n programma.
Ik kan je niet zo snel even helpen, ik weet niet uit m'n hoofd hoe dat te doen :)
Zijn hier ongetwijfeld mensen die dat wel even kunnen :)

Saved by the buoyancy of citrus


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

Korben

() => {};

Dat lukt ten eerste alleen maar als je twee compilers in het zelfde 'formaat' compileren. Dus een Borland object (.obj) linken met een Microsoft C++ progje werkt niet. Waarschijnlijk moet je het zo doen (G++)
code:
1
gcc -o bert.exe bert.o anderprogje.o -l libc

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


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 20:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

zoek eens in je libc reference naar de shell* spawn* functies (op de plaats van * 1 of meer letters invullen)

daarmee kun je een ander programma opstarten, en zodra ie klaar is gaat je programma verder

.edit: het was spawn, niet shell, zoals xenophage al opmerkte :)

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.


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

Korben

() => {};

Hmm... volgens mij moet ie zoeken naar spawn* zoeken. Maar goed dat verschilt volgens mij per compiler.

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


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 20:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op woensdag 19 september 2001 12:20 schreef Xenophage het volgende:
Hmm... volgens mij moet ie zoeken naar spawn* zoeken. Maar goed dat verschilt volgens mij per compiler.
oh spawn* was dat idd ja, mijn fout... 't is ook zo lang gelejen :)

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

Ik heb net gelezen dat het ook kon met system()

Maar dan moet je
#inlcude <system.h>
erbij voegen maar de system.h word niet standaart erbij geinstalleerd. |:(
Dus heeft iemand de system.h voor mij.
Zoja zou je die kunnen mailen naar: Iznogoud17@hotmail.com

Thx

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 20:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op woensdag 19 september 2001 15:11 schreef Iznogoud het volgende:
Ik heb net gelezen dat het ook kon met system()

Maar dan moet je
#inlcude <system.h>
erbij voegen maar de system.h word niet standaart erbij geinstalleerd. |:(
Dus heeft iemand de system.h voor mij.
Zoja zou je die kunnen mailen naar: Iznogoud17@hotmail.com

Thx
uhm als jij system.h niet hebt dan heb je ook niks aan een system.h van iemand anders, want dan heb je de daadwerkelijke functies ook niet in je libc staan

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.


  • MADG0BLIN
  • Registratie: Juni 2001
  • Laatst online: 16:59
Thnx guys zal ff wat dingen gaan proberen.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op woensdag 19 september 2001 12:08 schreef Xenophage het volgende:
Dat lukt ten eerste alleen maar als je twee compilers in het zelfde 'formaat' compileren. Dus een Borland object (.obj) linken met een Microsoft C++ progje werkt niet.
Borland compileert naar COFF-files, en VC++ default naar OMF, maar de linker van VC++ kan zonodig wel COFF binnenlinken, en Borland levert een converter bij de compiler.

(volgens mij heb ik ze nu omgedraaid trouwens, maar you get the idea)

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 20:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

nee vc++ compiled naar COFF :)
overigens (of moet ik zeggen: uiteraard) is dit COFF formaat van microschoft NIET compatible met het standaard COFF formaat (zoals bijvoorbeeld gcc dat kan genereren), maar de linker van MS accepteerd wel standaard COFF bestanden

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.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op donderdag 20 september 2001 00:42 schreef OiSyN het volgende:
nee vc++ compiled naar COFF :)
Ik bedacht het me inderdaad toen ik typte dat Borland een converter meeleverde en me herinnerde dat dat ding COFF2OMF.exe heet (en voor geen k*t werkt :) )

Was te lam om het te veranderen dus voegde maar toe dat het fout was :P

Professionele website nodig?


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 20:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

maar dan zit je nog altijd met dat C++ namemangling probleem... of mangled Borland net zoals Visual C++ dat doet? (lijkt me stug, want de VC++ manier is wel heel erg vaag)

Dus het probleem is dan dat de linker de C++ functies niet kan vinden, omdat ze intern een andere naam hebben :)

(en nu ga ik naar bed :z)

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.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
COFF to OMF Converter Version 1.0.0.74 Copyright (c) 1999, 2000 Inprise Corporation
Syntax:   COFF2OMF [options] InputFile OutputFile
  -h, -?  Display help
  -q    Quiet mode
  -v    Verbose mode
  -r    Remove (delete) output file if empty
  -lib:xx Specify options for OMF import library generation:
     ms - Allow entries that have MS C++ name mangling (default: no)
     st - Normalize names instead of aliasing MS stdcall mangling
     ca - Don't perform MS cdecl aliasing (default is to alias)

COFF2OMF will convert a COFF import library file (InputFile)
to the corresponding OMF type import library file (OutputFile).

;)

Professionele website nodig?


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:15
...kenners merk ik...

Er was een tijdje geleden een thread van iemand die een dergelijk name-decoration problem had bij een bestand gecompiled met VC5 die hij wilde linken in VC6.

Weet iemand van jullie of deze 2 versies misschien een incompatible object bestand uitpoepen?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Tobiaz
  • Registratie: Februari 2001
  • Laatst online: 21-01-2023

Tobiaz

Ondertitel

[off topic]

ZOw madgoblintje ;) Je bent al aardig wat verder dan ik met je cpp :) Xie je in de klas wel
Btw gaat dit om dat ene met bastiaan? Guess so.. succes *D

[/off topic]

Onder een steen geleefd dan maar ;-)

Pagina: 1