Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Klotzkopp

User
  • Registriert

  • Letzter Besuch

Alle Beiträge von Klotzkopp

  1. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C und C++
    @SGDJens: Was du vorhast, ist AFAIK mit Standard-C nicht möglich. Es gibt aber betriebssystemspezifische Funktionen, die das können. Für die Abfrage könntest du z.B. Threads benutzen.
  2. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in Hardware
    Wie kommst du auf 1,4? Der Wert sollte nicht konstant sein, sondern vom Winkel zwischen den Vektorgrößen Spannung und Strom abhängen.
  3. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C und C++
    Klar. Es sieht übrigens etwas anders aus als in meinem vorherigen Beitrag, weil ich nicht daran gedacht habe, dass der operator<<(int) ein Member von basic_ostream ist. operator<<( operator<<( operator<<( operator<<( cout.operator<<(x)," " ).operator<<(y)," " ).operator<<(z), " " ).operator<<(x=y=z=40)," " ).operator<<(x);[/CODE]
  4. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C und C++
    Nein, weil des dem Compiler überlassen bleibt, in welcher Reihenfolge die Argumente des operator<< abgearbeitet werden. Ich habe deinen Ausdruck mal so umgestellt, dass die operator<<-Aufrufe ausgeschrieben und die Leerzeichen weg sind: op<<(op<<(op<<(op<<(op<<(cout,x), y), z), x=y=z=40), x) Der Compiler kann sich jetzt aussuchen, welches Funktionsargument er zuerst auswertet. Die Reihenfolge, in der x, y, z, x (Ref. Nummer 2), cout und die Zuweisungen ausgewertet werden, ist undefiniert.
  5. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C und C++
    Bei mir funktioniert das mit MSVC 7 und Dev-C++ 4.9.7. Hast du die Zeilen vor das zweite scanf gesetzt? Wenn ja, zeig bitte mal deinen kompletten Code.
  6. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C und C++
    Der Standard gibt als Rückgabewerte von strcmp keine bestimmten Werte, sondern nur Null, größer als Null und kleiner als Null an. Diesbezüglich verhalten sich beide Compiler standardgemäß. Ein "Problem" kann da IMHO nur auftreten, wenn der Programmierer sich auf bestimmte Rückgabewerte verlässt oder die Werte noch irgendwie interpretiert.
  7. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    Das geht. Schau mal hier rein.
  8. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    Nach allem, was ich herausgefunden habe, ist es bei Outlook 2000 nicht möglich, das Kontextmenü zu modifizieren. Zu späteren Versionen habe ich nichts gefunden.
  9. Das könnte z.B. folgendermaßen aussehen: Als erstes brauchst du eine Message-ID, die das Trayicon an dein Dialogfenster schickt: #define UM_TRAY_ACTION (WM_USER+0x100) Um das Fenster aus- und das TrayIcon einzublenden: ShowWindow( SW_HIDE ); NOTIFYICONDATA nid; memset( &nid, 0, sizeof( nid)); nid.cbSize = sizeof(NOTIFYICONDATA); nid.hWnd = GetSafeHwnd(); nid.uID = 0; nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; nid.uCallbackMessage = UM_TRAY_ACTION; wsprintf( nid.szTip, TEXT("TrayIcon ToolTip")); nid.hIcon = IrgendeinHICON; // z.B. m_hIcon der Dialogklasse Shell_NotifyIcon( NIM_ADD, &nid);[/CODE] Umgekehrt: [CODE]NOTIFYICONDATA nid; memset( &nid, 0, sizeof( nid)); nid.cbSize = sizeof(NOTIFYICONDATA); nid.hWnd = hWnd; nid.uID = 0; Shell_NotifyIcon( NIM_DELETE, &nid); ShowWindow( SW_SHOW ); Damit du aber von der Tray-Nachricht überhaupt etwas mitbekommst, brauchst du eine Behandlungsfunktion. Deklariere in deiner Dialogklasse: LRESULT OnTrayAction( WPARAM wParam, LPARAM lParam); (der Name ist dabei willkürlich gewählt, wenn der Compiler sich an LRESULT stört, nimm void) Die Funktion musst du in die Messagemap der Dialogklasse einfügen, am besten nach //}}AFX_MSG_MAP, damit der Wizard nicht durcheinanderkommt: ON_MESSAGE(UM_TRAY_ACTION, OnTrayAction) Die Funktion könnte so aussehen: LRESULT CDeinDlg::OnTrayAction( WPARAM wParam, LPARAM lParam) { if( lParam == WM_LBUTTONDBLCLK ) { // Hier den Code zum Entfernen des Trayicons // und Anzeigen des Dialogs einfügen oder // aufrufen. } return 0; }[/code]
  10. Wenn CDialog::DoModal bei dir vom Typ int ist, dann musst du die Methode auch als int überschreiben. Offenbar haben wir unterschiedliche Versionen der MFC. Im Resource-Editor, wenn du dir die Eigenschaften des Dialogs anzeigen lässt.
  11. Innerhalb von OnInitDialog ist es nicht möglich, mit ShowWindow oder ModifyStyle das Anzeigen zu verhinden, weil die MFC selbst dafür sorgt, dass der Dialog angezeigt wird, sobald es möglich ist. Das kann man nur verhindern, indem man CDialog::DoModal überschreibt. Dazu deklarierst du in deiner Dialogklasse die Methode public: INT_PTR DoModal(); Für die Implementierung übernimmst du den Code aus CDialog::DoModal (aus dlgcore.cpp, im MFC-Source-Verzeichnis), und machst die folgenden Änderungen: Zusätzlich: #include <afxpriv.h> Ersetzen (jeweils einmal): MLF_SHOWONIDLE durch 0 (das ist das Entscheidende) DELETE_EXCEPTION(e) durch e->Delete() (sonst gibts einen Compilerfehler) Nachtrag: Das Visible-Flag des Dialogs musst du natürlich auf False stellen.
  12. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    @paule22: Um an das Fensterhandle zu kommen, kannst du den Fensterbaum mit FindWindowEx durchsuchen. Wenn du dabei sowohl für den Fenster- als auch für den Klassennamen NULL angibst, werden alle Fenster gefunden. Um überhaupt mitzubekommen, wann das Fenster, das du suchst, angezeigt wird, kannst du Hooks verwenden. Wenn es sich um einen modalen Dialog handelt (z.B. MessageBox), kannst du einen Hook für WH_CALLWNDPROC oder WH_CALLWNDPROCRET einsetzen und bei WM_INITDIALOG prüfen, ob das Fenster erschienen ist.
  13. Es gibt (neben der Autorenedition) drei Editionen: Standard, Professional und Enterprise. Einen Featurevergleich kannst du hier finden. Einen Händler habe ich leider auf die schnelle auch nicht gefunden. Du kannst aber auch mit Visual C++ 7 normale (also nicht .net) Programme schreiben, falls es das ist, worum es dir geht. P.S.: Ich habe mir erlaubt, den Threadtitel zu ändern. Sah ein wenig nach einem Stellenangebot aus.
  14. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C und C++
    Übrigens: In welcher Reihenfolge hier die Operatoren ausgewertet werden, kann sich der Compilerhersteller aussuchen. Das kann also mit einen anderen Compiler schon wieder ganz anders aussehen. Wenn man portablen Code schreiben will, sollte man auf solche Konstrukte verzichten.
  15. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in Windows
    Hier steht etwas über Prefetching: http://www.serverworldmagazine.com/monthly/2002/03/fastboot.shtml
  16. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C und C++
    Um den Eingabepuffer zu leeren, kannst du diesen beiden Zeilen vor den scanf-Aufruf setzen: setvbuf( stdin, NULL, _IONBF, 0 ); setvbuf( stdin, NULL, _IOFBF, BUFSIZ );[/CODE]
  17. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    Jetzt kommen wir der Sache näher. Hier liegt nämlich das Problem. Die Adresse des Puffers, die du übergibst, bezieht sich auf den Adressraum deines Prozesses. Damit kann der andere Prozess nichts anfangen. Möglicherweise kommst du mit VirtualAllocEx weiter. Damit kannst du Speicher im Adressraum eines fremden Prozesses reservieren. Schau mal hier rein, da hatte wohl jemand das gleiche Problem: http://www.experts-exchange.com/Programming/Programming_Platforms/Win_Prog/Q_20096218.html
  18. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    Bei mir klappt's. Ist der Text vielleicht länger als 100 Zeichen?
  19. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    MAKEINTRESOURCE ist ein Makro, das den Wert einer Resource-ID (üblicherweise ein #define für ein numerisches Literal) auf 16 Bit beschränkt und den Typ auf LPCTSTR ändert. Das ist aber nicht wirklich ein Zeiger auf einen String. Es macht keinen Sinn, dieses Makro auf den Rückgabewert von LoadMenu anzuwenden.
  20. Das macht man mit UPDATE_UI-Handlern. Schau mal hier rein: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=25900
  21. @iXs`und [FiSi]Neo: Bitte beim Thema bleiben, danke.
  22. Normalerweise werden für Menüeinträge und Toolbarbuttons in der Statuszeile des Programms kurze Hilfstexte eingeblendet, wenn man mit der Maus darüber fährt. Wenn dieser Text fehlt, wird diese Meldung im Debugger ausgegeben. Abstellen kannst du das, indem du einen Text in der Stringtabelle, mit derselben Resource-ID wie der Menüeintrag anlegst.
  23. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    Vielleicht Standard für Windows, aber nicht für C++. Außerdem braucht man für den Zugriff einen OLEDB-Provider für die Datenbank.
  24. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in C++: Compiler, IDEs, APIs
    Normalerweise schreibt man Datenbanken nicht selbst, sondern greift auf bestehende Datenbanken zu. Da es keine standardisierte Datenbankschnittstelle für C++ gibt, sondern eine Vielzahl von mehr oder weniger proprietären und datenbankspezifischen Schnittstellen, hängt die Antwort auf deine Fragen davon ab, mit welcher Datenbank du arbeiten willst. Hier ging es um ein ähnliches Thema.
  25. Klotzkopp hat auf einen Beitrag in einem Thema geantwortet in Security
    Mag sein. Aber jeder sollte auf einschlägigen Hoax-Seiten prüfen, ob es tatsächlich ein Virus ist, bevor er sowas weiter verbreitet, und außerdem auf multiple Satzzeichen und Schreien verzichten. Mein ganz persönliche Meinung.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.