Alle Fragen von einem PROFI an einen SUPER PROFI - 1. - Seite 11

 
joo:

Habe dies getan, immer noch der gleiche Fehler:

Zhunko:

Wurde das Projekt mit seinen Eigenschaften in VC++ 6.0 kopiert oder wurde es separat eingerichtet?

Ich habe drei Mal Funktionen in VS 2010 verwendet, die in XP nicht verfügbar sind. Unter Vista und 7 hat alles funktioniert, aber unter XP hat das Terminal die Bibliothek nicht gesehen.

Zhunko:

Ich habe es am Anfang des Themas geschrieben. Dies geschieht, wenn Sie WinAPI-Funktionen verwenden, die in XP nicht vorhanden sind. Ein weiterer Grund. Wenn die minimale Systemversion durch eine höhere Version eingeschränkt wird.

Ich erlebe gerade das Gleiche. Ich bin nie dazu gekommen, nach dieser Funktion zu suchen.

 

Zhunko:

joo:

Habe dies getan, immer noch der gleiche Fehler:

Zhunko:

Wurde das Projekt mit seinen Eigenschaften in VC++ 6.0 kopiert oder wurde es separat eingerichtet?

Ich habe drei Mal Funktionen in VS 2010 verwendet, die in XP nicht verfügbar sind. Unter Vista und 7 hat alles funktioniert, aber unter XP hat das Terminal die Bibliothek nicht gesehen.

Zhunko:

Ich habe es am Anfang des Themas geschrieben. Dies geschieht, wenn Sie WinAPI-Funktionen verwenden, die in XP nicht vorhanden sind. Ein weiterer Grund. Wenn die minimale Systemversion durch eine höhere Version eingeschränkt wird.

Ich erlebe gerade das Gleiche. Ich habe noch nie nach dieser Funktion suchen müssen.

Ich habe den Grund gefunden! Aber ich weiß nicht, was ich damit anfangen soll.

Das Problem lag in diesem Konstrukt einer Klassenmethode mit statischen Methoden:

    static HWND HandleByProcessIdAndClass()
     {
      HWND   hwndLocal = NULL; // Дескриптор искомого окна.
      size_t i = 0;

      ::EnterCriticalSection(&GetInstance()->csOne);
      ::EnterCriticalSection(&GetInstance()->csMultiple);
     ................. Здесь защищаемый код ...................
      ::LeaveCriticalSection(&GetInstance()->csMultiple);
      ::LeaveCriticalSection(&GetInstance()->csOne);
      return(hwndLocal);
     }

Sobald Sie die Synchronisierung aufheben (rot hervorgehoben), wird die Bibliothek für XP sichtbar. Unter Vista funktioniert es.

Vielleicht ist es eine nicht ausreichende Version einer Systembibliothek?

=======

Was diesen Kurs angeht, muss ich etwas klarstellen.

Alle Methoden der Klasse mit statischen "Windows"-Methoden, von denen es etwa 80 gibt, haben eine ähnliche Synchronisation.

Die angegebene Methode wird zuerst im Konstruktor einer Instanz einer anderen "WindowsMT4"-Klasse aufgerufen.

Es sieht so aus, als ob die Klasse "Windows" außerhalb der Zeit initialisiert wird.

 

Ich habe die Ursache gefunden. Andrei hat geholfen. Ich habe die Singletons falsch gemacht.

XP und Vista initialisieren Klassen unterschiedlich. Sie brauchen die richtigen Einzelstücke.

 
Zhunko:

Ich habe die Ursache gefunden. Andrei hat geholfen. Ich habe die Singletons falsch gemacht.

XP und Vista initialisieren Klassen unterschiedlich. Sie brauchen die richtigen Einzelstücke.


Das ist so ekelhaft. Das ist einfach furchtbar!
 
C-4:

Das ist wirklich schade. Das ist einfach furchtbar!
Ach, komm schon... :-)) Ich habe gerade die Klasse mit statischen Methoden in ein Singleton umgewandelt. Alles funktioniert.
 
Zhunko:
Ja, okay... :-)) Ich habe gerade eine Klasse mit statischen Methoden in ein Singleton umgewandelt. Alles funktioniert.

Frage an die Superprofis, ihre Erfahrungen mitzuteilen:)) - Wie entfernt man ein Singleton?

 
alsu:

Frage an die Superprofis, ihre Erfahrungen mitzuteilen:)) - Wie entfernt man ein Singleton?

Sie meinen, die Ressourcen freizugeben? Im Destruktor können Sie.
 
Zhunko:
Was meinen Sie mit klaren Ressourcen? Sie können im Destruktor.

Nein, im Sinne der Entfernung des Objekts selbst - welches Verfahren entscheidet, wann es entfernt wird?

Ich habe im Moment keine praktischen Zwecke, ich habe mich nur daran erinnert, dass ich einmal ein Projekt gemacht habe, das mehrere Singleton-Templates verwendet hat - also gab es immer Probleme mit dem Moment der Singleton-Entfernung - ich musste einige Probleme mit Referenz-Tracing, Destruktor-Wrapping in Wrappern und so weiter machen... Und wenn zum Beispiel eines der Module aufgrund einer Ausnahme abstürzte, war das eine Katastrophe... Das war das letzte Mal, dass ich mich mit Singletons beschäftigt habe, da es mir eher lästig als nützlich erschien). Vielleicht liege ich falsch.

 
alsu:

Nein, im Sinne der Entfernung des Objekts selbst - welches Verfahren entscheidet, wann es entfernt wird?

Ich habe im Moment keine praktischen Zwecke, ich habe mich nur daran erinnert, dass ich einmal ein Projekt gemacht habe, das mehrere Singleton-Templates verwendet hat - also gab es immer Probleme mit dem Moment der Singleton-Entfernung - ich musste einige Probleme mit Referenz-Tracing, Destruktor-Wrapping in Wrappern und so weiter machen... Und wenn zum Beispiel eines der Module aufgrund einer Ausnahme abstürzte, war das eine Katastrophe... Das war das letzte Mal, dass ich mich mit Singletons beschäftigt habe, da es mir eher lästig als nützlich erschien). Vielleicht liege ich falsch.

Ich habe vor kurzem gelernt, Singles zu sein. Ich habe gelernt, dass ich ohne sie nicht auskomme. Ich weiß nicht, wie ich sie löschen kann. Das war nicht nötig.
 

alsu:

Das war das letzte Mal, dass ich mich mit Singletons beschäftigt habe, da es mir viel mehr Mühe machte, als es wert war). Vielleicht liege ich falsch.

Wenn Sie Probleme haben, ein Singleton zu entfernen, wird es wahrscheinlich nicht richtig verwendet. Aber auch Singles sind anders, wie zum Beispiel Phoenix.