User123 schrieb:
nuckl0r schrieb:
User123 schrieb:
Verpiss dich ausm Forum du scheiß 1337 Kind.
Willst du an meinem großen Onkel nuck0ln?
Das einzige was an deinem Körper groß ist, ist deine Klappe.
*bussieknutschie*
schatzi
:x
Um es ein wenig umständlich zu machen
#include<windows.h>
int main(int argc,char**argv)
{
HWND hWnd;
HDC hDC;
SetConsoleTitle("Putpixel");
hWnd=FindWindow(NULL,"Putpixel");
hDC=GetDC(hWnd);
SetPixel(hDC,10,10,RGB(255,0,0));
Sleep(5000)
return 0;
}
Wieso willst du es unbedingt in der Console haben, dein Pixel, die Console ist ein eigentlich nicht dafür gemacht einzelne Pixel zu verändern, sondern ganze Charblöcke.
Soweit ich weiß kann man weder mit GetMessage(), SetConsoleCtrlHandler() noch mit ConsoleReadInput() Windowmessage in der Konsole empfangen kann.
Mit GetMessage() und hwnd = NULL empfange ich nur Hotkey, Timer, ... und Fokus Nachrichten
Mit GetMessage() und hwnd = GetConsoleWindow() geht gar nichts
Mit SetConsoleCtrlHandler() bekommt man nur die ganzen beenden Nachrichten und
mit ConsoleReadInput() bekommt man auch nur Maus, Tastatur und Fokus Nachrichten.
Wie man nun die ganzen Windowmessages bekommt, würde mich auch echt mal interessieren. Eventuell gehts ja über Hooks.
Aber ich schätze, dich interessiert mehr das Systray Icon. Das kann man mit Shell_NotifyIcon() erstellen.
Also die Schaltung hinter dem LPT Port soll wie folgt aussehen: An die Acht Ausgänge des hinter den LPT Port geschalteten IC (zwischen LPT und IC kommt dann pro Kanal dann ein 100 Ohm Wiederstand) werden dann Lüfter gehängt um diese Automatisch durch Spannungsunterschiede seitens der Stromversorgung,die über das Programm in Abhängigkeit zur Temperatur geregelt werden, über den LPT Port steueren zulassen.
also zunächst mal, es gibt kein vc++ 2009, wenn, dann hast du die 2008
ok, also VC++ linkt standardmäßig deine Programme mit der dynamische C++ Runtime.
das heißt, auf jedem Rechner, auf dem deine Programme laufen sollen, muss diese Runtime ebenfalls verfügbar sein.
auf PCs mti Visual Studio ist die logischer Weise schon drauf.
auch einige Spiele, welche mti VC++ entwickelt wurden, installieren diese Bibliotheken gleich mit.
Den Installer dafür kann man sich hier herunterladen:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=de
die 2. Möglichkeit besteht darin, zur Laufzeitumgebung (Runtime Environment) einafch statisch zu linken.
Dazu gehst du in die Projekteigenschaften
in den Bereich C/C++ und wählst dort Codegenerierung
In dem Dialog gibt es nun den Eintrag "Laufzeit Bibliothek".
In der Debug-Variante steht da standardmäßig: "Multithreaded-Debug-DLL (/MDd)"
das DLL weißt auf dynamische Verlinkung hin (Dynamic Link Library)
um statisch zu linken, wählst du hier: "Multithreaded-Debug (/MTd)"
das selbe geht auch bei Release
aus "Multithreaded-DLL (/MD)"
muss hier "Multithreaded (/MT)" werden.
danach solten die Programme auch auf Rechnern laufen, wo kein Visual Studio und kein Redistributable Package installiert ist.
ACHTUNG: neukompilieren nicht vergessen, sonst wirken die änderungen nicht
MfG Drako
das geht dann ungefähr so:
...
int sflag = 0;
int mflag = 0;
...
while ((c = getopt (argc, argv, "sm")) != -1)
...
case 's':
sflag = 1;
break;
case 'm':
mflag = 1;
break;
...
Lerikson schrieb:
Danke!
Neben diesem Fehler hatte ich auch einen mit cout fabriziert...:(
nochmals Danke für eure (deine) Hilfe!
Hast du den Fehler inzwischen gelöst?
cout << suchname": " << nummer << endl;
<< vergessen, Suchname ist nicht suchname (Groß/Kleinschreibung beachten)
cout << Suchname << ": " << nummer << endl;
Bei weiteren Fehlern bitte aktuellen Quellcode posten und auch die Fehlermeldung(en).
Naja, ich muß gestehen ich habe wieder mal gesündigt. Das Programm steht jetzt. War was Kleines. Ich habe zwei Tage lang mich vor dem Anfangen gedrückt, weil immer, wenn ich mich mal kurz dransetzte, einfach kein hübscher Anfang da war. Gegen heute mitternacht kam die Erleuchtung. Jetzt steht die erste Hälfte, die bereits Daten sammeln kann. Habe nicht das leichteste zuerst gemacht, sondern sage und schreibe 120 Zeilen von vorn nach hinten in die main() geklopft und es ist trotzdem gut. Es skaliert schlecht, ist aber erstmal egal.
Die Auswertung kommt dann später. Die ist kompliziert und muß aus Performancegründen objektorientiert werden. Die Klassen werden ganze Blöcke aus der fetten main() übernehmen können und der Datensammler wird die Klassen des Auswerters bekommen und schneller werden.
Also entgegen dem, was ich predige, habe ich wohl zwei Tage (halbherzig) geplant, um dann 5.5 Stunden zu coden. Entgegen dem, was ich predige, ist mein Prog flach wie für den 64-er.
Ich kann nur sagen: Alle Generalisierungen sind falsch.
Na ich schreibe auch lieber
i=-1;
Leerzeichen sind toll, aber hier m.E. unnötig. Wenn man allerdings noch Leerzeichen dazwischenpappt, dann aber so wie stiehl geschrieben hat.
1. Eigenen PE Loader schreiben. Erfordert gute Windows Kentnisse und nicht ganz leicht, weil du mit undokumentierten Funktionen aus Ntdll arbeiten musst.
2. stdout umleiten, siehe http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx
Wenn Du aber ein Konsolenprogramm ohne Konsole hast, wie willst Du das dann steuern?
Andersrum: Wenn Du ein Konsolenprogramm via Tastatureingaben steuern willst, warum hast Du dann keine Konsole? Was soll das Programm überhaupt machen, während die Konsole weg ist?
Ich bezweifele den Sinn daran, die Konsole verschwinden zu lassen.
Umweg: Versuch eine Datei zu öffnen, die es per default nicht gibt. Wenn Du Deine Konsole wieder haben willst, leg im Explorer die Datei an. Sobald Dein Programm diese Datei öffnen kann, lass es die Konsole wieder holen.
Belli schrieb:
Wie Du schon sagst, jeder wie er mag ...
und daher tut's auch ein: for(;;); am ende des programms, wenn man mit dem leicht erhöhten energieverbrauch leben kann.