welches Betriebssystem und dann die Version.
Nach dem CopyFile tippe ich mal auf Win7.
Da hilft dann die Standardbibliothek erstmal fstream nicht weiter.
Insofern ein ziemlich überflüssiger Tip.
Dafür nimmt man dann die Windows Api, den langjährigen Standard in diesem Bereich. Denn für Windows legt MS den Standard fest , niemand sonst :p.
Die Api findest Du hier:
http://msdn.microsoft.com/en-us/library/aa364232.aspx
Du musst dann programmatisch die notwendigen Rechte setzen siehe auch
http://msdn.microsoft.com/en-us/library/aa364399.aspx
Ansonsten ist unter Win7 Admin nicht gleich Admin. Der Standardamin darf z.B. nicht in Systemordner schreiben.
Über Admin-Privilegien und Sicherheit, die ziemlich komplex ist, erfährst Du bei der MSDN.
Kleiner Tip noch. Wenn Du den Return bzw. die Fehlervariable errno auswertest, gibt es im Allgemeinen gute Hinweise, wo der Fehler liegt.
genoni schrieb:
[...]bis jetzt arbeitete ich immer auf dem Mac und nun habe ich mir per Bootcamp eine Windows-Partition geholt.
Vielleicht weisst du das einfach noch nicht daher sage ich es einfach mal: du kannst auch auf deinem Mac einen C++ Compiler installieren.
Gruss,
anneXus
3P!CF41L schrieb:
Wie genau schafft man denn diesen Mode 13h?
Grundlage für direkten Hardwarezugriff wäre das die Applikation als 16bit Code
ausgelegt wird. Dafür braucht man einen etwas älteren Compiler und natürlich
eine 16 bit Betriebssystem-Umgebung.
Turbo C 3.1 und win XP wären eine Möglichkeit; Visual Studio müsste bis Version 4.0 noch gehen.
Bei Win7 mit 64Bit braucht man vermutlich eine VM, da 16 Bit nativ nicht mehr unterstützt wird.
Mode 13h wird durch Aufruf eines (16-Bit) BIOS Aufruf aktiviert (Int 10h).
Wenn man Unterstützung durch grundlegende Grafikfunktionen haben will sollte man eine Grafikbibliothek
verwenden. Die Borland BGI-Treiber wären hier eine (früher) gängige Lösung.
Der Tipp mit Allegro ist speziell für Spiele zu empfehlen.
http://alleg.sourceforge.net/
tobZel schrieb:
also erstmal dürftest du das so viel ich weiß gar nicht kompilieren können. Die Variable a gibt es doppelt. Einmal als globale variable und einmal in der funktion heronverfahren (die parameter gelten als deklarationen).
Natürlich darf man zwei Variablen mit gleichem Namen in verschiedenen Scopes haben.
3P!CF41L: In deiner Funktion benutzt du die globale Variable x_alt , ohne sie vorher zu initialisieren. Benutze (für den Anfang) nie globale Variable. Dann warnt dich dein Compiler auch, wenn du unitialisierte Variablen lesend benutzt (Compilerwarnungen beachten!).
mischasp schrieb:
Was ist hier das Problem?
Höchstwahrscheinlich, daß daten.ftp nicht im Arbeitsverzeichnis von ftp.exe ist, wenn es durch system() aufgerufen wird.
Was soll das eigentlich werden, wenns fertig ist? Rumspielen?
Statt getch() aus conio.h kann man auch schreiben:
#ifdef _WIN32
char Getch(){
HANDLE hdl=GetStdHandle(STD_INPUT_HANDLE);
HANDLE hdo=GetStdHandle(STD_OUTPUT_HANDLE);
DWORD oldmode; //Zuvor verwendeter Konsolenmodus
CONSOLE_CURSOR_INFO cci;
char gedrueckt;
GetConsoleMode(hdl, &oldmode);
GetConsoleCursorInfo(hdo, &cci); cci.bVisible=false; //Cursor nicht sichtbar
SetConsoleMode(hdl, oldmode&~(ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT)); //Input wird nicht angezeigt, Entertaste muss nicht gedrückt werden
SetConsoleCursorInfo(hdo, &cci);
gedrueckt=getchar();
cci.bVisible=true; SetConsoleCursorInfo(hdo, &cci); //Setze Cursor wieder zurück
SetConsoleMode(hdl, oldmode); //Und den Modus wieder auf den zuvor verwendeten
return gedrueckt;
}
#endif
C mit seinen Standards und der Compiler selbst sind das eine, die IDE die du wählst, um es möglichst bequem zu haben, ist etwas anderes.
Die IDE trifft bestimmte Annahmen, wenn du sie startest und ihr nicht mitteilst, was du Konkretes machen möchtest. Und bei VStudio ist es eben C++.
Ich vermute mal, dass das Problem nicht eine unterschiedliche Tabsize bei XP und Win7 ist, denn die ist bei beiden System 8 Zeichen.
Allerdings können die Fonts in den Consolen in Art und Größe ungleich sein.
Das betrifft dann natürlich auch die width-Spec.
Über die Consolen-Api ist das bestimmbar und dann sollten auch die Tabs gleich sein.
Schau mal hier:
http://msdn.microsoft.com/en-us/library/ms682010%28VS.85%29.aspx
Der Vorschlag von Lowbyte sollte es richten; die Standard-Handles vor Prozesserzeugung umbiegen und die Ausgabe dann ins Fenster schreiben.
Ausserdem kann man noch auf das Ende warten:
if(CreateProcess(0, szExe, 0, 0, FALSE, 0, 0, 0, &sInfo, &pInfo))
{
// optionally wait for process to finish
WaitForSingleObject(pInfo.hProcess, INFINITE);
CloseHandle(pInfo.hProcess);
CloseHandle(pInfo.hThread);
}
Ausserdem kann man noch die Process Creation Flags (dwCreationFlags) z.B.
mit CREATE_NO_WINDOW beeinflussen - auch Prioritäten u.a.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx
Ein fettes Beispiel findet sich hier:
Creating a Child Process with Redirected Input and Output
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=vs.85).aspx
xyzjdhasldfhasldf schrieb:
Schau Dir mal
http://www.tutorials.de/content/340-c-c-wert-von-speicheradresse-lesen-aendern.html
an.
Danke ich schaus mir mal an.
Damit du siehst was ich meine:
#include <iostream> // wozu der header hier?
#include "divison.h"
int division(int z){
int main(int y, int x); // diese Zeile sollte nur einmal im ganzen Projekt aber nicht hier zu sehen sein!
z = (x+y)/2; // Mittelwert oder Division?
return(z);
}
schreibe mal die Datei so:
#include "divison.h"
int division(int a, int b){
int m;
m = (a+b)/2; // Mittelwert oder Division?
return(m);
}
Zeige uns mal deine Folgerungen in Form des Quelltextes daraus, denn ich vermute, du hast da ein paar Fehlinterpretationen. Ob dein Buch die Ursache ist weiss ich nicht. Aber der Verlag hat ein paar Bücher im Angebot, die man trotz guter Bewertungen im Netz, nur mit Vorsicht geniessen sollte
MfG f.-th.