Alle Beiträge von Klotzkopp
-
Ereignisse in der Menü-Leiste
Dann hast Du es Dir nicht richtig angesehen. In der verwendeten Menüklasse ist DrawItem überschrieben. DrawItem wird immer aufgerufen, wenn sich der Zustand eines Menüeintrags ändert. Dazu zählt auch die Selektion bzw. Deselektion.
-
Ausgabeformatierung
Du rundest falsch. Und was machst Du bei Zahlen über 20 Millionen? Mein Favorit: double dAufZweiStellen = floor( dUngerundet * 100.0 + .5 ) / 100.0;
-
Verlassen geschachtelter For-Schleifen
Das ist IMHO gefährlich. Wenn dieser Code mal verändert werden muss, hat man da eine potentielle Fehlerquelle. Ich halte Exceptions oder goto für durchaus angebracht, wenn es die Les- und Wartbarkeit des Codes verbessert.
-
Größe einer eingegebenen Zahl begrenzen (war: C++)
@dgorski: Bitte lass Dir beim nächsten mal einen etwas aussagekräftigeren Titel einfallen. Ich hole das hier jetzt mal für Dich nach Thema verschoben nach C und C++.
-
Win XP - Desktopsymbol in der Taskleiste
Du musst gar nichts programmieren, nur den gekennzeichneten Text in einer scf-Datei speichern.
-
Bildschirmauflösung
Das geht in die Richtung: http://www.codeproject.com/dialog/resizabledialog.asp
-
MDI - ein Dokument mehrmals öffnen
Die Standardimplementierung von CDocTemplate::MatchDocType prüft den Dateinamen, und falls ein Dokument mit diesem Namen bereits geöffnet wurde, wird einfach der bestehende Frame angezeigt. Du könntest eine von CMultiDocTemplate abgeleitete Templateklasse verwenden, MatchDocType überschreiben und nicht yesAlreadyOpen zurückgeben.
-
IE 6 SP1 - Outlook Express
Extras -> Optionen -> Sicherheit -> Speichern oder Öffnen von Anlagen, die möglicherweise einen Virus enthalten könnten, nicht zulassen: Häkchen entfernen.
-
Font - Problem
Hast Du meinen Hinweis mit LOGPIXELSY ausprobiert? Es könnte an unterschiedlichen Auflösungen der Drucker liegen.
-
DLL und SDI
Die Lebenszeit einer View beschränkt sich im Gegensatz zu einem Dialog nicht nur auf Erzeugen - DoModal - Zerstören. Eine View ist nur ein Teil eines zusammenhängenden Gebildes, zu dem auch Template, Dokument und FrameWindow gehören. Du kannst eine View nicht wie einen modalen Dialog auslagern. Was vielleicht funktionieren mag: In einer DLL das View-Objekt zu erzeugen und einen Zeiger darauf rauszugeben. Die richtige Stelle, das aufzurufen, wäre die OnCreateClient-Methode der Frame-Klasse. Da drin wird normalerweise CreateView aufgerufen, was Du dann natürlich nicht machen darfst.
-
über telnet ftp
PASV und PORT sind FTP-Kommandos, so wie LIST. Der Client verwendet PORT, um aktives FTP, allerdings mit andern als den Default-Einstellungen für den Datenkanal zu nutzen. PASV wird benutzt, um dem Server mitzuteilen, dass passives FTP verwendet wird. Siehe dazu: http://www.w3.org/Protocols/rfc959/
-
über telnet ftp
Da Du telnet kaum dazu bewegen können wirst, auf einem Port zu lauschen, musst Du wohl passives FTP verwenden, also statt PORT PASV absetzen. Dann nennt Dir der Server einen Port, auf den Du Dich mit dem Datenkanal verbinden kannst.
-
Ereignisse in der Menü-Leiste
Das geht mit einem normalen Menü nicht. Dazu musst Du eine Klasse von CMenu ableiten und DrawItem überschreiben. Diese Methode wird u.a. aufgerufen, wenn sich die Menüauswahl ändert. Im CTRLTEST-Beispiel wird das gemacht: http://msdn.microsoft.com/library/en-us/vcsample98/html/_sample_mfc_ctrltest.asp
-
Font - Problem
Beispiel: CFont font; font.CreateFont( 80, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, VARIABLE_PITCH, L"Arial" ); dc.SelectObject( font ); Die 80 ist hier ein Beispiel, du musst mit den Werten ein wenig experimentieren. Falls mehrere Druckauflösungen unterstützt werden sollen, solltest Du beim ersten Parameter von CreateFont noch den Wert von dc.GetDeviceCaps( LOGPIXELSY ) berücksichtigen.
-
Linker Fataler Fehler - HILFE!!!
Lies bitte genau. Es geht nicht darum, ob Du Adminrechte hast, sondern ob Du mit dem Benutzerkonto arbeitest, unter dem der Borland Builder installiert wurde.
-
char-Array Vergleich
Ist aber so. CStdioFile::ReadString weiß nicht, wie groß der Puffer wirklich ist, und muss sich auf die Angabe des Programmierers verlassen. Wenn der sagt, dass der Puffer 9 Bytes groß ist, dann liest ReadString (maximal) 8 Zeichen, und hängt ein Nullzeichen dran. Dass dieses dann aber außerhalb des allokierten Speichers steht, ist natürlich ein Fehler des Programmierers, der fatale Folgen haben kann.
-
Öffnen einer Datei im Internet
Der Client sucht sich einen freien lokalen Port. Der lokale Port des Servers ist der Remote-Port des Clients und umgekehrt. Server: lokaler Port: 80 Remote-Port: juckt ihn nicht, da er die Verbindung nur annimmt. Client: Remote-Port: 80 lokaler Port: was grad frei ist.
-
Öffnen einer Datei im Internet
Doch, genauso ist es. Der Port, auf dem der Server lauscht, ist der Remote-Port Deines Clients. Welchen lokalen Port Dein Client verwendet, ist vollkommen egal.
-
Öffnen einer Datei im Internet
Hm, bei mir klappts... Du musst zwischen dem lokalen und dem Remote-Port unterscheiden. Der Remote-Port muss 80 sein (oder was halt im URL steht), der lokale Port ist vollkommen egal, da solltest Du 0 angeben.
-
Öffnen einer Datei im Internet
Für Windows gibt es z.B. InternetReadFile: http://msdn.microsoft.com/library/en-us/wininet/wininet/internetreadfile.asp
-
Öffnen einer Datei im Internet
War ja nur ein Beispiel. Es gibt auch andere Wrapperklassen. Wenn Du das wirklich von Hand machen willst, solltest Du Dir das HTTP-Protokoll ansehen, weil Du dann einen HTTP-Client schreiben musst. Zeilenweise wird das nicht gehen. Mit Partial Content kannst Du aber bestimmte Teile der Datei anfordern.
-
Öffnen einer Datei im Internet
Nein, du musst "nur" den Client schreiben. Der Server ist der Webserver, auf dem die Datei liegt. Ich würde Dir aber wirklich empfehlen, einen HTTP-Wrapper zu verwenden, z.B. CHttpFile aus den MFC. Es gibt keinen Grund, das Rad neu zu erfinden.
-
Öffnen einer Datei im Internet
Kann auch nicht gehen. Keine normale Datei-API "spricht" HTTP. Obwohl Explorer/IE das so darstellen, als ob da kein wirklicher Unterschied bestünde, steckt ein ganz anderes Protokoll dahinter. Wenn Du eine Datei über das HTTP-Protokoll laden willst, musst Du eine HTTP-Abfrage absetzen. Das geht entweder mit Sockets von Hand oder über eine der diversen HTTP-Wrapper-APIs.
-
"Debug Assertion Failed!"
Ich habe mir die Stelle mal angesehen. An der Stelle (CDaoException::GetErrorMessage) kommt eine Assertion, wenn DAO intern einen Fehlermeldungstext nicht laden kann. Sollte also nichts mit Deinem Code zu tun haben. Wahrscheinlich ist auf dem PC eine andere/ältere Version der MDAC installiert.
-
Subnetting
Und wie hättest Du es gerne gehabt? 2-frozen hat Dir doch schon den Gefallen getan, das Thema ins passende Forum zu verschieben.