Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Alle Inhalte von Klotzkopp

  1. Hier gibt es im letzten Drittel ein Beispiel für eine Mehrfachauswahl. Das ist übrigens der erste Link, den man findet, wenn man "PAP Mehrfachauswahl" bei Google eingibt.
  2. Es muss nicht daran liegen, aber es ist auf jeden Fall ein Fehler: Wenn du in einer Schleife von 0 bis Anzahl-1 durch deine Listbox gehst und immer einen Eintrag entfernst, vergisst du dabei, dass durch das Entfernen die darunter liegenden Einträge nach oben rutschen. Du bearbeitest also nur jeden zweiten Eintrag, und greifst noch dazu nach der Hälfte der Durchläufe mit ungültigen Indices auf die Listbox zu. Da du den Rückgabewert von GetText nicht abprüfst, bekommst du das nicht mal mit. Was dann im weiteren passiert, ist nicht vorauszusagen. Also: Entweder immer mit Index 0 zugreifen, oder von hinten anfangen.
  3. Die Schleife wird ausgeführt, solange (nicht bis) die Bedingung wahr ist: for (x=0;x<=3;++x) for (y=0;y<=16;++y) [/CODE] @Nokinger: Wenn es egal ist, ob man Prä- oder Postinkrement verwendet, sollte man sich Präinkrement angwöhnen.
  4. Welchen Wert gibt RegQueryValueEx bei diesem Code zurück? Doch, das stand doch in dem MSDN-Auszug oben. Wenn der Puffer nicht groß genug ist, schreibt RegQueryValueEx die benötigte Puffergröße in die Variable, auf die lpcbData zeigt. Das ist in deinem Fall EncLaenge. Also: Was steht nach dem Aufruf in EncLaenge?
  5. Was liefert 0? Der Aufruf von RegQueryValueEx? Dann hat's doch geklappt. Du bist mit deinen Überlegungen auf dem Holzweg. Die Funktion kann die Größe des Puffers nicht aus dem Zeiger selbst entnehmen, sondern nur aus dem Wert, den du in EncLaenge übergibst. Wenn die Funktion mit ERROR_MORE_DATA zurückkommt, dann ist der Wert in EncLaenge zu klein. Wenn der wirklich 4 ist, dann ist auch der Puffer zu klein. Zeig doch bitte mal den aktuellen Code.
  6. Thread geschlossen. Siehe CWs Link.
  7. Ist der Wert überhaupt ein DWORD? Was steht vor dem Aufruf in EncLaenge, was danach?
  8. Quelle: MSDN If the buffer specified by lpData parameter is not large enough to hold the data, the function returns ERROR_MORE_DATA and stores the required buffer size in the variable pointed to by lpcbData. In this case, the contents of the lpData buffer are undefined. Übrigens: ERROR_MORE_DATA ist 234. ;-)
  9. Mal abgesehen davon, dass auch x = -y sein könnte: Woher nimmst du das Gleichheitszeichen?
  10. Was speicherst du denn in der Liste, sprich: wie sieht der typedef aus? Kannst du ein Minimalbeispiel zeigen, das den Fehler reproduziert?
  11. Hmm, ich komme auf x hoch 2/3 - y hoch 2/3.
  12. Äh, da ist keine Gleichung, oder sehe ich das falsch? Wahrscheinlich geht es nur darum, den Term zu vereinfachen. 1/x ist x hoch -1, dritte Wurzel aus irgendwas ist irgendwas hoch 1/3. Dann muss man nur noch die Potenzgesetze anwenden.
  13. propset.AddProperty(DBPROP_UPDATABILITY, (DWORD)0); [/Code]
  14. Und was ist damit: propset.AddProperty(DBPROP_UPDATABILITY, 0); [/Code]
  15. Ich würde die ganze Zeile auskommentieren.
  16. Das ist DB_E_ERRORSOCCURRED. Ruf mal AtlTraceErrorRecords mit dem HRESULT auf, während das Programm im Debugger läuft. Das sollte eine Beschreibung des Fehlers ins Output-Fenster schreiben.
  17. Zunächst mal ist "läuft nicht" keine Fehlerbeschreibung. Wie genau äußert sich das? Was hast du versucht, um eine Netzwerkverbindung herzustellen? Wie sind die IP-Adressen und Subnetzmasken eingestellt?
  18. DBTIMESTAMP ts; CString str; str.Format("%02d%02d%04d", ts.day, ts.month, ts.year); [/CODE]
  19. Ich kann mir das nur so erklären, dass dieser Code in einer Memberfunktion einer Klasse steht, die von CCommand abgeleitet ist. Ist das der Fall?
  20. Mir fällt gerade auf: Die Feldinhalte sollten in den Membervaraiblen des Accessors stehen. Wenn OpenDB nicht gerade von deiner Accessorklasse abgeleitet ist (was nicht gut wäre), sollte da int k = opendb.cmd.m_ver; stehen.
  21. Ja, das sieht gut aus. Sind in der Tabelle mehrere Felder? Falls ja, schreib bitte mal die tatsächlichen Feldnamen statt des * in das Select-Statement. Kann sein, dass die Reihenfolge in der COLUMN_MAP nicht auf die Reihenfolge der Felder passt, wie das Select sie liefert.
  22. Hast du MoveNext aufgerufen?
  23. Es geht auch ohne if #include <iostream> int main() { for(int i=0; i<37; ++i) { std::cout << (i/9%2 ? 19-i%18 : i%18+1) << "\n"; } } [/CODE]
  24. Klotzkopp

    vector

    1. Lass das mit dem typedef. Das brauchst du in C++ nicht. 2. Lass das mit allocator<test>. Das ist der Default-Allocator für vector. struct test { int i; }; vector<test> m_testvec; [/CODE] Wenn du diesen Vector jetzt in einer anderen Klasse benutzen willst, darfst du nicht eine identische Struktur deklarieren, denn selbst wenn die Strukturen gleich aufgebaut sind, sind es unterschiedliche Typen, und damit sind sie nicht ineinandert konvertierbar. Selbst wenn du sie konvertierbar machen würdest (z.B. durch entsprechende Konstruktoren), sind die Vektoren immer noch nicht konvertierbar. Das kannst du nur lösen, indem du [i]denselben[/i] Typ für die Struktur verwendest: [CODE] class Cklass2 { void Function(vector<CKlass1::test> vec); }; Dazu muss test in CKlass1 public sein (oder CKlass2::Function ein friend vom CKlass1),
  25. Mach daraus mal: CCommand<CAccessor<CTabell> > cmd; hr = cmd.Open(session, "SELECT * FROM dbo.Tabell", &propset); [/code]

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...