Kein MS Flexgrid unter Windows7 ?!



  • Moin!

    Einige meiner MFC Programme laufen unter Windows 7 nicht mehr. Nach ein Paar Tests hat sich herausgestellt, das das MS Flexgrid unter Vista und Win7 fehlt.
    Entwickelt habe ich die betroffenen Programme mit Visual Studio 6. Ich verwende die Grid Version "Microsoft FlexGrid Control, version 6.0" in der traditionellen Wrapper-Form (Dem Projekt hinzufügen -> Komponenten und Steuerelemente -> Registered ActiveX Controls usw ... )
    Also habe ich einfach mal versucht, das entsprechende OCX auf das Win7 System zu kopieren und dort mittels regsvr32 zu registrieren. Auch dies brachte nicht den gewünschten Erfolg. Nach einigen Nachforschungen im Web habe ich gleich die kompletten "Visual Basic Runtime Komponenten" auf der Maschine nachinstalliert (Dort enthalten sind alle diese alten Standard MS Kompononenten wie auch das Flexgrid). Auch dies funktionierte nicht. Wie zum Teufel bekomme ich das Flexgrid unter Windows7 zum laufen?! Erstaunlicherweise finde ich auch keinen Support-Eintrag in der MSDN. Das Flexgrid war doch allgemein recht beliebt und wurde oft verbaut?!


  • Mod

    Was passiert denn für ein Fehler?
    Welchen HRESULT bekommst Du beim Erzeigen der Komponenten?

    Evtl. Killbits gesetzt, siehe:
    http://www.microsoft.com/technet/security/advisory/960715.mspx

    Siehe auch Thread hier:
    http://groups.google.de/group/microsoft.public.windowsupdate/browse_thread/thread/d1ecc639a8be14c5/f1b2abb2bd2f6afd

    Dort ist auch ein Workarround beschrieben, die aktuellen VB6 Komponenten zu installieren.



  • Martin Richter schrieb:

    Was passiert denn für ein Fehler?
    Welchen HRESULT bekommst Du beim Erzeigen der Komponenten?
    ...

    Soweit konnte ich noch nicht testen, da ich auf dem Win7 Rechner keine IDE habe. Er fliegt auf jedem Fall bei Create raus, also an dieser Stelle im Wrapper:

    BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
    		const RECT& rect, CWnd* pParentWnd, UINT nID,
    		CFile* pPersist = NULL, BOOL bStorage = FALSE,
    		BSTR bstrLicKey = NULL)
    	{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
    		pPersist, bStorage, bstrLicKey); }
    

  • Mod

    Wieso kannst Du nicht testen? Es gibt doch seit Jahrhunderten Remote Debugging!

    Ansonsten Debug Version auf Windows 7 Rechner übertragen und TRACE Ausgaben im DBGView ansehen.



  • Nee nee, ich installier dort einfach das VS6 und debugge dann lokal. Allerdings hab ich keine all zu grossen Erwartungen dadurch etwas rauszufinden. So wie es aussieht, wird diese Komponente seit Vista einfach nicht mehr unterstützt und es gibt auch keinen Ersatz (Wenn man nicht auf .NET / DataGrid etc portieren will) Unter Vista haben es anscheinend einige Leute geschafft, aber unter Win7 funktioniert keiner dieser Tricks.


  • Mod

    Wieder meine Frage: KillBits oder warum?
    Es gibt ansonsten keinen Grund warum das Ding nicht laufen soll...

    Was passiert in einem Mini-Sample die nur eine Instanz anlegen will (am Besten plain C++).

    DBGVIEW verwenden!

    http://www.mpdvc.de/artikel/RemoteDebugging.htm



  • Das Problem besteht leider immernoch 😞

    Martin Richter schrieb:

    Wieder meine Frage: KillBits oder warum?

    Keine Ahnung, warum. CreateControl liefert FALSE zurück und GetLastError meldet gar nichts 😕 Woran sehe ich denn, ob es das "Killbit" war?! Ich habe mal ein Tool (ActiveX Helper) ausprobiert, mit dem sich ActiveX Controls ein/ausschalten lassen aber alle Gridkomponenten stehen dort als "enabled". Nach Recherchen im Internet habe ich danach den "Compatibility Flags" Eintrag in der Registry entfernt. Auch das hat nichts gebracht 😞

    Es gibt ansonsten keinen Grund warum das Ding nicht laufen soll...

    Was passiert in einem Mini-Sample die nur eine Instanz anlegen will (am Besten plain C++). ...

    Wie gesagt, nichts! Create liefer FALSE und GetLastError liefert 0.


  • Mod

    DBGVIEW?

    HRESULT prüfen und Remote Debuggen...



  • Das Flexgrid war doch allgemein recht beliebt und wurde oft verbaut?!

    Bei großen Datenmengen war es ziemlich langsam. Es gab doch bereits bei XP und erst recht der Portierung von Projekten auf VS2003 Probleme.

    Ich bin zu dem Zeitpunkt auf andere Controls umgestiegen



  • Martin Richter schrieb:

    DBGVIEW?

    HRESULT prüfen und Remote Debuggen...

    Welchen HRESULT?!



  • Tester2 schrieb:

    Ich bin zu dem Zeitpunkt auf andere Controls umgestiegen

    Auf welche?



  • CListCtrl

    Ich musste allerdings nur in einer Liste wirklich was direkt in einzelne Zellen eintragen und da habe ich dann getrickst.

    Ich glaube bei Code Project gibt es auch ein Beispiel, wo man CListCtrls so "umbiegen" konnte, dass man einzelne Zellen editieren konnte.


Anmelden zum Antworten