GDI+ ActiveX funktioniert auf .Net aber nicht auf VB6
-
Hallo
Ich habe für eine Ältere Anlage (Visual Basic 6) ein Programm in C++ MFC ActiveX Control geschrieben.
Zum testen habe ich das ocx in einer C# Application aufgerufen wo immer alles 100%ig läuft.Wenn ich jetzt aber das selbe Steuerelement in VB6 aufrufe wird nichts von den programmierten GDI Sachen gezeichnet. (Restlichen funktionen laufen, also implementierung alles OK)
Und wenn ich dann noch über
Image image(L"asd.bmp"); graphics.DrawImage(&image,5,5);
ein BMP zeichne stürzt mir sogar das Programm unter XP ab! Unter Win7 nicht...
Warum wird in VB6 nichts gezeichnet und in .NET schon?
Kann ich das beheben oder muss ich jetzt eine andere Lösung suchen? Direct2D?
Sau ärgerlich bin eigendlich mit allem fertig und jetzt läufts nur in meinem Testprogramm und nicht auf dem Ziel Rechner.Ich würde mich über jeden Hinweis und Kommentar freuen!
Danke
psycrush
-
Die C# App läuft auch auf dem Zielrechner?
vc_redistx86 installiert?
-
Graphics initialisiert? D.h. GdiplusStartup ausgeführt (und bitte icht in DLLMain!).
-
Es funktioniert jetzt!
Der Tipp mit GdiplusStartup war Goldrichtig!
Das verhält sich folgendermaßen:
Testapp in C# egal welches OS egal ob mit oder ohne GdiplusStartup
Grafiken werden gezeichnet
kein Programmabsturz-WinXP/VB6/mit GdiplusStartup
Grafiken werden gezeichnet
kein Programmabsturz-WinXP/VB6/ohne GdiplusStartup
Grafiken werden nicht gezeichnet
Programmabsturz!-Win7/VB6/mit GdiplusStartup
Grafiken werden gezeichnet
kein Programmabsturz-Win7/VB6/ohne GdiplusStartup
Grafiken werden nicht gezeichnet
kein ProgrammabsturzDanke für eure Antworten!
-
Das ist alles logisch.
XP benutzt grundsätzlich ertmal kein GDI+.Net Anwendeungen immer.
Une in Vista und Windows7 ist GDI+ auch aktiv, wenn Themes bzw. Aero aktiv sind.