um unsere in die Jahre gekommenen VB6 Komponenten auf .NET umzustellen, habe
ich versucht diese in .NET einzubinden. Leider stoßen wir hier unter 64 bit
Systemen auf Probleme. In vielen VB6 Komponenten ist das FlexGrid enthalten.
Das FlexGrid wird in einer .NET Umgebung unter 64 bit nicht angezeigt.
Das Auwählen der Konfiguration x86 führte leider auch nicht zum Erfolg.
Interessanterweise funktioniert das Ganze, wenn die Start exe eine VB6 exe ist
(Hierfür habe ich ein Interop geschrieben, der einfach App.Run() aufruft,
diesen rufe ich dann in VB6 auf).
Hat jemand eine Idee, woran dieses Verhalten liegen könnte, oder was ich
noch versuchen könnte?
Danke schonmal im Voraus.
Gruß,
Martin Bürkle
> in die Jahre gekommenen VB6 Komponenten auf .NET umzustellen
naja, die 10 Jahre waren eigentlich genug für 100% .NET.
> In vielen VB6 Komponenten ist das FlexGrid enthalten
solche vielschichtige Ungetüme nochmals weiter in Win-Forms zu hosten
kann immer nur eine wacklige Not-Übergangslösung sein.
> Das FlexGrid wird in einer .NET Umgebung unter 64 bit nicht angezeigt
Frage: VS2008 oder 2010 (welche Edition?) - .NET 3.x oder 4.0?
Die .NET App (Projekt der EXE) muss garantiert auf x86 (32-Bit) stehen.
(Vorsicht, es muss auch die richtige Einstellung sein, es gibt ggf mehrere
"x86"-Settings!)
Als Schnelltest würde ich rasch ein
neues minimal-WinForms Projekt erstellen
und dort direkt mal jene FlexGrid-OCX auf ein Form platzieren.
Damit kann man den Fehler evtl. besser eingrenzen (debuggen).
Diese VB-OCXe sind übrigens KillBit-verseucht,
viele Hotfixes/Rollups /Security könnten klemmen.
(lies MS KBs)
--
Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/
danke erstmal für die schnelle Antwort.
Das Testprojekt habe ich bereits geschrieben. Es macht keinen Unterschied ob
ich es mit VS 2008 oder VS2010 erstelle. Auch die Änderung des .NET
Frameworks bringt nichts.
Bei dem Testprojekt wird das OCX selbst im Designer nicht dargestellt.
Hast Du noch weitere Ideen? Bin für jede Anregung dankbar.
Danke schonmal im Voraus.
Gruß,
Martin
"Thomas Scheidegger" wrote:
> .
>
bitte detailiert!
Also zB, du kannst das OCX zwar im Designer auf das WinForm platzieren,
wird dann aber 'optisch' nicht ausgefüllt,
sondern bloss dessen Rahmen erscheint?
Weiteres nebenbei,
Als Fehlerquelle gab es historisch auch mal:
"You must have a design-time license to use Visual Basic 6.0 ActiveX
controls"
http://support.microsoft.com/kb/318597
Unter Vista/7 sollte man es ggf auch mal mit Vollberechtigung
(User als Admin, ohne UAC!) versuchen...
Auch sollltest du wie gesagt prüfen,
welche FlexGrid Version der vielen VB6/OCX Rollups du hast,
wegen den KillBits, zB
http://support.microsoft.com/kb/957924
das FlexGrid wird "nur" nicht dargestellt. Ich kann auf Properties zugreifen
und diese auch zu Laufzeit auslesen. Es erscheint auch keinerlei Rahmen. Es
ist, als ob es Invisible geschaltet wäre (Visible steht aber auf true). Es
ist also auch kein Rahmen sichtbar.
Die Lizenz für das Grid habe ich eingespielt, und mein Visual Studio läuft
unter Adminrechten.
Den Hinweis mit den Killbits habe ich mir auch angesehen. In Postings im
Netz ist es allerdings so beschrieben, dass das Flexgrid überhaupt nicht mehr
funktioniert. Das ist bei mir ja nicht der Fall, weil es in VB6 direkt
richtig funktioniert.
Danke nochmals für Deine Hilfe.
Gruß,
Martin
"Thomas Scheidegger" wrote:
> .
>