Alle Beiträge von Klotzkopp
-
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.
-
mySQL und msSQL: Unterschiede beim INSERT-Befehl?
Na da haben wir doch die Ursache des Problems. Wenn bei diesen Feldern NULL nicht erlaubt ist, dann musst Du beim Insert einen Wert angeben.
-
konvertierung string[] in char*
string::c_str() gibt einen const char* zurück.
-
Array mit int als größe deklarieren
Unter Windows wird die Stackgröße ins Binary hineinkompiliert und ist damit durchaus beschränkt. Gibt es wirklich Systeme, bei denen eine simple rekursive Endlosschleife den kompletten Speicher frisst?
-
DLL und SDI
Der Begriff "Form" ist in den MFC nicht vorhanden. Borland mag über dieses Konzept das Laden aus DLLs unterstützen. Aber das Document/View-Klassenmodell der MFC sieht meines Wissens nicht vor, dass Klassen oder Ressourcen aus anderen Modulen bezogen werden. Womöglich kannst Du das erreichen, indem Du Template, Doc, View und Frame komplett in die DLL auslagerst. Alternativ könntest Du die Dialogressource, die die View nutzt, in eine MFC Extension DLL auslagern.
-
mySQL und msSQL: Unterschiede beim INSERT-Befehl?
Ist bei Feld 2 und 3 NULL erlaubt?
-
Statuszeile (Prozentzeile) anzeigen.
Die Rechnung ist o.k, die Formel nicht. 1,9 mal (n/10000) zum Quadrat ist einfach keine gute Abschätzung für Deinen Algorithmus. Aus den drei Werten, die Du genannt hast, könnte man folgendes machen: *Lina rauskram* float x = n / 10000.0; float sekunden = 4.3 * x * x - 7 * x + 4.7;
-
Statuszeile (Prozentzeile) anzeigen.
Sicher Verstehst Du meinen Lösungsvorschlag? Rechne mit double statt mit int. Ein double kann 100.000 zum Quadrat darstellen, ein int nicht.
-
Statuszeile (Prozentzeile) anzeigen.
100000 hoch zwei übersteigt den Wertebereich eines 32-Bit-Integers. Rechne doch einfach mit double, oder brauchst Du die Genauigkeit auf 1/1000-Sekunde?
-
DLL und SDI
Autsch! Dass der Konstruktor bei CView und abgeleiteten Klassen protected ist, hat seinen Grund. Die View wird von der Frame-Klasse erzeugt, nachdem das Template das Dokument erstellt hat, und zwar über die statische Create-Funktion, in der dann der Konstruktor aufgerufen wird. Du kannst diese Klassen nicht wirklich voneinander trennen, daher kannst Du eine View allein auch nicht anzeigen.
-
DLL und SDI
Genau das. Deine Klasse ist von CFormView abgeleitet. Die kannst Du nicht mit DoModal anzeigen. Dazu müsstest Du eine von CDialog abgeleitete Klasse verwenden.
-
DLL und SDI
Zeig mal bitte die Deklaration von TestForm.
-
falsche dateigröße
- VB und das & Zeichen
&&- Tree-Ansicht erstellen
Entwickelst Du unter Windows 95 oder 98? http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q233390&- Compilerumstellung: Visual Studio 6 auf Visual Studio 7(.Net)
Hier ein Erfahrungsbericht von der Umstellung eines mittelgroßen Projekts (13,3 MB Quellcode) von VC 6 auf 7: Im Projekt gab es: - MFC (MDI) - WTL - ATL COM - ATL OLEDB Consumer Templates - OLE Container - Hosten von Script-Engines - Sockets - Komprimierung (in/deflate) - Crypting (Windows Provider) - Multithreading Folgende Probleme traten auf: Allgemein: VC 7 lässt es einem nicht durchgehen, wenn man auf statische Member mit Klasse.Member zugreift. VC 7 mag auch offenbar in .def-Dateien keine DESCRIPTION oder @[Zahl] bei exportierten Symbolen. Die HtmlHelp-Funktion hat nur noch zwei Parameter. Einige Strukturen im Zusammenhang mit RichEdit-Controls (z.b. CHARFORMAT) werden unter VC 6 trotz #define UNICODE als ANSI kompiliert. Unter VC 7 sind sie dann aber UNICODE. MFC: Einige MessageMap-Einträge enthielten Handler, die void oder UINT waren. VC 7 hätte da gerne LRESULT als Rückgabewert. Die Position einiger interner MFC-Header hat sich verändert. ATL OLEDB Consumer Templates: Das unter VC 6 "selbst definierte" Makro COLUMN_ENTRY_TYPE_STATUS war unter VC 7 vorhanden, hatte aber die Reihenfolge der Parameter vertauscht. Komprimierung / STL In der dynamischen Deflate-Implementierung wurde ein reverse_iterator<unsigned int*> benutzt, von dem man aber unter VC 7 keine Instanz erzeugen konnte. Zusammenfassung: Die meisten Probleme ließen sich durch geringfüge Codekorrekturen lösen, in einigen Fällen waren Compilerversionprüfungen mit #if/#else/#endif notwendig (z.B. RichEdit-Strukturen), und den dynamischen Deflate-Code habe ich einfach rausgenommen, weil statische Komprimierung an der Stelle völlig ausreichte.- Maximiert starten
Hatten wir schon mal: http://www.fachinformatiker-world.de/forums/showthread.php?s=&threadid=12837- Dialog als Hauptfenster
InitCommonControlsEx aufgerufen?- Dialog als Hauptfenster
Also, das hier läuft: #include <windows.h> #include "resource.h" HWND hMainWindow; INT_PTR CALLBACK MainProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) { switch( uMsg ) { case WM_COMMAND: switch( wParam ) { case IDCANCEL: PostQuitMessage( 0 ); break; default: break; } break; default: break; } return 0; } APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG Msg; hMainWindow = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1 ), 0, MainProc); ShowWindow(hMainWindow,nCmdShow); while(GetMessage(&Msg,0,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; } [/CODE]- Dialog als Hauptfenster
Ich hab das hier mal nachgebaut, und es funktioniert. Was liefert GetLastError denn zurück?- Dialog als Hauptfenster
Hast Du die .rc-Datei dem Projekt unter "Source Files" hinzugefügt?- Dialog als Hauptfenster
if(hMainWindow == NULL)- Tree-Ansicht erstellen
Nochmal: Hast Du eine Nachrichtenbehandlungsfunktion für TVN_DELETEITEM erstellt? Wenn ja, was steht drin? Der MessageMap-Eintrag sollte in etwa so aussehen: ON_NOTIFY(TVN_DELETEITEM, IDC_TREE1, OnDeleteitemTree)- Analyse und Entwerfen von Algorithmen
Sicher geht das einfacher. Aber daraus lernt man ja nichts. So wie ich den Algorithmus verstanden habe, wird der Exponent n als Dualzahl interpretiert. Die Prüfung auf ungerade ist der Test, ob an der gerade verarbeiteten Dualstelle des Exponenten eine 1 oder eine 0 steht. Die Division durch zwei wechselt dann zur nächsten Dualstelle. k wird sozusagen bitweise bearbeitet, vom niederwertigsten Bit angefangen. Ist k zu Anfang ungerade, enthält die Potenz den Fakter x hoch 1, also wird der reinmultipliziert. k wird eventuell vermindert und halbiert, und der Stellenwert der Potenz durch Quadrierung verdoppelt auf x hoch 2. Ob dieser Faktor im Ergebnis enthalten ist, hängt davon ab, ob k jetzt wieder ungerade ist. Beim Beispiel 5 ist k nach dem ersten Durchgang (5-1)/2 = 2, also gerade, damit ist x hoch 2 nicht enthalten. Der "Stellenwert-Faktor" wird wieder quadriert, also x hoch 4, und jetzt ist k wieder ungerade (nämlich 1), also ist x hoch 4 enthalten, und wird reinmultipliziert. Danach ist k Null, und wir sind fertig. Das Ergebnis ist also x hoch 1 mal x hoch 4 gleich x hoch 5.- Herr der Ringe
... Amroth beheld the fading shore Now low beyond the swell, And cursed the faithless ship that bore Him far from Nimrodel Of old he was an Elven-King, ... Frage ich mich auch. Wenn es um alle geht, die auch nur erwähnt werden, kann man gleich die Stammbäume des Silmarillion runterbeten AFAIK waren die zwei Menschen... - VB und das & Zeichen