Just nu i M3-nätverket
Gå till innehåll

Hur kan få olika program att sammarbeta ?


LiveNdie

Rekommendera Poster

Jag har gjort ett program i Turbo C++ och vill använda några av dom funktioner som finns i det i ett program i som jag gör i Borland C++ bilder 5.

Anledningen att jag inte bara kan kopiera över koden är att en del av dom kommandon som finns i Turbo C++ programet inte stöds av Borland c++.

 

Någon som har några förslag på hur man kan göra, gärna med ett exempel om det är möjligt.

 

//LiveNdie

Länk till kommentar
Dela på andra webbplatser

Om inte annat borde du väl kunna skapa olika exe-filer för de olika programmen som tar emot argument.

 

T.ex.

TurboC-programmet är "huvudprogrammet" som gör allt du vill. När du kompilerar det bildas "MittTurboC.exe"-filen

 

Borland-programmet är "hjälpprogram" och kompileras till "MittBorlandC.exe".

 

I TurboC-koden ropar du på filen "MittBorlandC.exe" då du behöver saker därifrån, med olika argument beroende på vad som skall göras. Minns inte hur man exekverar andra filer inuti ett c-program, men det går väl på ngt sätt, skriv typ följande i TurboCkoden:

 

execFile(MittBorlandC.exe argument1 argument 2);

 

I Borlandkoden börjar du med att ta emot argument.. minns inte koden för detta heller, men det heter ngt i stil med "argc" eller "argv".

 

Hoppas du fattar ngt av detta och att det kan hjälpa ;)

 

 

 

 

[inlägget ändrat 2002-01-04 13:23:15 av lyx.One]

Länk till kommentar
Dela på andra webbplatser

Det funkade ganska bra så, men jag lyckas inte med att skicka tillbaka ett värde från "under programet".

 

String a = WinExec("C:\\temp\\Tand.exe", SW_SHOWNORMAL);

 

använde detta för att försöka få tag på det, men det funkade inte.

 

i underprogramet kunde det t.ex. stå:

 

int main(int argc, char **agrv)

.....

int a = 4;

return (a);

...

 

Kan man läsa av det värdet på något sätt?

 

 

 

från börja hade jag tänkt mig att man kanske kunde använda .obj filen på något sätt, har hört att det kan gå.

 

Länk till kommentar
Dela på andra webbplatser

Testa att i "underprogrammet" istället printa variabeln.

 

Alltså:

istället för

int main(int argc, char **agrv)
.....
int a = 4;
return (a);
...

använder du

int main(int argc, char **agrv)
.....
int a = 4;
cout << a; /* eller vad tusan man skriver för att printa */

 

Lycka till!

 

PS. Är det inte dags att ge poäng för mitt inlägg ;)

 

[inlägget ändrat 2002-01-07 14:14:46 av lyx.One]

Länk till kommentar
Dela på andra webbplatser

Nej det hjälpte tyvärr inte att göra så. Man kan ju låta programmet skriva till en fil, men det vore bra om man kunde slippa det.

 

 

jag är inte säker på om jag gjorde rätt med röstingen där nu, men man kan bara ge ett poäng eller? menar man ger inte poäng på en skala eller så va?

[inlägget ändrat 2002-01-07 18:06:14 av LiveNdie]

Länk till kommentar
Dela på andra webbplatser

Har inte en aning det är därför jag frågar ;-) men jag har för mig att om man har en DLL fil så måste man includera headerfilerna i "huvudfilen", och då är man där igen att dom nya kompialtorerna inte tar emot dom komandon som jag vill använda.

hur som hällst så har jag inte hittat hur man kan göra en DLL fil i Turbo C++

Men om någon kan vet hur man kan göra på detta sättet så vore det utmärkt. (tror jag)

 

tack ändå!

 

//LiveNdie

 

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Hmm...vet inte om detta är till någon hjälp men du kan få ditt del program att skriva ut till en ström i huvudprogrammet. Till exempel om du använder programmet ping i dos kan du få ett program att skriva resultatet till en fil eller till en variabel. kommandot man använder är _popen. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt__popen.2c_._wpopen.asp

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...