Alle Beiträge von Klotzkopp
-
resetiosflags , alle flags auf einen schlag löschen
Abgesehen davon, dass du die Flags mit | kombinieren könntest, was spricht denn gegen resetiosflags( deinstream.flags() ) ?
-
Servergespeicherte Benutzerprofile
--> Verschoben nach: Windows Betriebssysteme
-
Wie kann man GDI-Handles freigeben?
Machst du jedes SelectObject wieder rückgängig? Wendest Du DeleteObject für jedes mit CreateXXX erzeugt Objekt an, wenn du es nicht mehr brauchst?
-
Message Hooks
PCWPSTRUCT pcwp = reinterpret_cast<PCWPSTRUCT>( lParam ); if( pcwp->message == WM_LBUTTONDOWN ... Wenn du einen globalen Hook für WH_CALLWNDPROC einrichtest, ruft die WndProc eines jeden Prozesses deinen Hook auf. Was passiert, wenn dazu ein Funktionszeiger benutzt wird, der nur im Adressraum deines Prozesses gültig ist, kannst du dir ausmalen: Jeder Prozess mit einer WndProc, außer deinem, schmiert mit einer Schutzverletzung ab. Im günstigsten Fall. Wenn der Code aber in einer DLL steht, deren Instance-Handle du ja angibst, kann jeder Prozess auf die Adresse zugreifen. Noch was: Am Ende deiner HookProc musst du CallNextHookEx aufrufen, und den Rückgabewert zurückgeben. Sonst kommen andere, vorher eingerichtete Hooks nicht mehr zum Zuge.
-
Message Hooks
Erstens ist die Signatur deiner HookProc falsch. HookProcs sind LRESULT CALLBACK HookProc(int, WPARAM, LPARAM); Dann ist auch der Cast nicht mehr notwendig. Zweitens müssen globale Hooks in DLLs stehen, denn die anderen Prozesse kommen sonst nicht an den Code.
-
Serielle Schnittstelle ansprechen
Schau mal in diesen Thread, da hatten wir die Grundlagen schon mal behandelt. Wenn noch weitere Fragen auftreten, hänge dich bitte an diesen Thread, dann werden die Information besser gebündelt. Hier mache ich dicht.
-
Linkerfehler: Nichtaufgeloestes externes Symbol (war: Error)
Auf welche Aussage von Guybrush Threepwood beziehst du das? Soweit ich das sehe, hat er nichts falsches gesagt. Exportierst du denn überhaupt die Klasse xyDlg oder die Methode getstr? Wo wird die Instanz von xyDlg erzeugt?
-
Linkerfehler: Nichtaufgeloestes externes Symbol (war: Error)
Du kannst nichtstatische Member nur aufrufen, wenn Du in der Exe eine Instanz von xyDlg (oder einen Zeiger darauf) hast.
-
source für dsl treiber
1. Treiber schreibt man für Hardwarekomponenten, nicht für Verbindungsstandards oder Protokolle. Du solltest also schon sagen, um was für eine Hardware es sich handelt. Oder brauchst du nur einen High-Level-Treiber, der auf einem bestehenden Low-Level-Treiber aufsetzt? Dann solltest du sagen, um was für einen Low-Level-Treiber es sich handelt. 2. Windows-Treiber werden üblicherweise in C geschrieben. Die Implementierungsdetails hängen aber stark vom Betriebssystem ab. Ein Treiber für Windows XP wird nicht unter NT oder 95 laufen. Also solltest du auch sagen, für welches Windows der Treiber sein soll. 3. Treiber können "typische" Aufgaben erfüllen, oder speziell auf die Hardware zugeschnitten sein. Willst du z.B. einen vollständigen NDIS-Treiber, so dass du ein Netzwerk darüber laufen lassen kannst? Was soll der Treiber können? 4. Treiberprogrammierung ist (zumindest unter Windows, unter anderen BSen habe ich da keine Erfahrung), alles, nur nicht "einfach". Bist du in der Lage, aus dem Sourcecode einen Treiber zu kompilieren, sprich: hast du das DDK für dein Windows?
-
String to Hex
Meinst du eine Funktion, die aus "abcd" "61626364" macht? Das könntest du z.B. so machen: #include <string> #include <sstream> #include <iomanip> using namespace std; string hexdump( const string& s ) { stringstream ss; string::size_type len = s.length(); ss.flags( ios::hex ); for( string::size_type i=0; i<len; ++i ) { ss << setw(2) << setfill('0') << static_cast<unsigned int>(s[i]); } return ss.str(); }[/CODE]
-
Linkerfehler: Nichtaufgeloestes externes Symbol (war: Error)
Also, das mit einem Instanzzeiger geht nicht, weiß auch nicht, wie ich darauf gekommen bin. Aber mit einem Funktionszeiger gehts: In der EXE: void do_init_benutzer() { CNameApp name name.init_benutzer(); } // irgendwo am Anfang: // der DLL den Funktionszeiger übergeben. set_do_init_benutzer( do_init_benutzer ); In der DLL: // Funktionszeiger void(*fp_init_benutzer)(void); // exportierte Funktion zum Setzen des Funktionszeigers void __declspec(dllexport) set_do_init_benutzer_fp( void(*fp)(void) ) { fp_init_benutzer = fp; } Dann kannst du in der DLL mit fp_init_benutzer(); die Funktion in der EXE aufrufen.
-
Linkerfehler: Nichtaufgeloestes externes Symbol (war: Error)
Das funktioniert so nicht, weil der Linker nicht weiß, wo in der Exe-Datei der Einsprungpunkt für diese Klasse/Funktion ist. Das lässt sich auch nicht zur Laufzeit auflösen. Das geht nur bei Aufrufen von EXE nach DLL. Außerdem ist es schlechtes Design, eine DLL von einer EXE abhängig zu machen. Das widerspricht ja der Absicht, die hinter DLLs steht. Du könntest aber in der DLL eine Funktion exportieren, mit der du einen Zeiger auf eine CNameApp-Instanz oder einen Funktionszeiger angeben kannst.
-
Selbstscrollende ListBox
Wenn es dich nicht stört, dass sich dabei die Selektierung ändert, könntest du das so machen: int nItem = m_Log.AddString( deintext ); m_Log.SetCurSel( nItem ); m_Log.SetCurSel( -1 );
-
sprintf-Befehl will net?!
http://de3.php.net/manual/en/function.microtime.php
-
sprintf-Befehl will net?!
Sag doch einfach mal genau, was du mit "kommamäßig trennen" meinst. Die Zahl, die du da hast, hat keine Nachkommastellen, und wenn du sie mit 1000 multiplizierst, bleibt das so. Was soll denn hinterher da stehen?
-
"Bedienungsanleitung" für MSSQL-Server 2000
Schau doch mal hier rein. Gibt's sogar auf deutsch.
-
Tree-Ansicht erstellen
Warum fügst du unterhalb von childhitem noch einen Knoten in den Baum ein?
-
globale Funktion
Ich würde diese Struktur der "Öffnen"-Funktion als Referenz-Parameter übergeben. Die Funktion kann die Struktur dann mit gültigen Werten füllen.
-
C++ Aufgabe - Wer hat einen Tipp oder weiss, wie man sowas loest?
Also... string wert; // // String zur Ausgabe Den brauchst du gar nicht. x == 15; Das muss x = 15; heißen. Du willst ja eine Zuweisung machen, keinen Vergleich, dessen Ergebnis du dann ignorierst. for (start = 1; start = x; start++) { Eine for-Schleife wird solange ausgeführt, wie die Bedingung wahr ist. Das müsste also start != x (oder start < x) lauten. Kein Fehler, aber trotzdem ein guter Rat: Wenn es keinen Grund für start++ gibt, nimm ++start. if (summe = x) { Hier muss es jetzt == heißen, denn hier willst du einen Vergleich machen, keine Zuweisung. for (j = start; j = lauf; j++) { Hier machst du wieder eine Zuweisung, wo ein Vergleich hingehört, und noch dazu steht der falsche Vergleich da. Das gleiche wie oben, die Schleife läuft, solange die Bedingung wahr ist. Hier muss <= hin. wert += inttostr(j) +" "; // Hier gibts Probleme Mach doch einfach cout << j << " "; cout << wert; Und hier brauchst du dann nur noch einen Zeilenumbruch: cout << endl;
-
Barcode Schriftarten
Hier: http://www.barcode24.com/ Wird aber wohl nicht umsonst sein...
-
Zuletzt geändert am Datum auslesen
GetFileAttributesEx
-
farbinformation eines pixels
Versuch es bitte mal mit fprintf(datei, "%06X", colorHtml);
-
farbinformation eines pixels
BGR, nicht RGB. Um aus COLORREF einen Wert zu machen, den du für HTML verwenden kannst, brauchst du folgendes: COLORREF cr = GetPixel( ... ); DWORD colorHtml = (( cr & 0xff0000 ) >> 16) | (( cr & 0xff ) << 16) | ( cr & 0xff00 );
-
farbinformation eines pixels
Das ist normal. Die Reihenfolge der Farben ist bei COLORREF anders als in HTML. COLORREF ist BGR, HTML ist RGB.
-
Outlook Express verändert Konten-Daten??
Das sollte auch noch funktionieren. OE wendet sich mit allen POP3-, SMTP- und IMAP-Anfragen an das AV-Programm, welches die Anfragen dann an den "echten" Mailserver weiterleitet.