[VC++ 2005] Erstellen (MT&CLR) / PictureBox Transparenz(ungenau)
-
Sooo, ich will hier nun mal zwei Dinge zusammenfassen um nicht zwei neue Threads erstellen zu müssen.
I. Erstellen (MT&CLR)
Zuerst möchte ich darauf hinweisen, dass ich die FAQ dazu gelesen habe, mir die Tips aber leider nicht weitergeholfen haben. Folgendes problem tritt auf:
Wenn ich mein Programm erstellen will (*.exe) bekomme ich die Meldung "/MT & /CLR passt nicht zusammen!". Bekomme ich das irgendwie unter einen Hut?
Wenn ich "MFC in einer öffentlichen DLL" verwende, dann kompiliert er mir den Code, leider läuft das Programm nur auf meiner Workstation richtig, also ganz richtig, ohne Probleme, jedoch lass ich einen Kollegen das Programm testen oder versuch ich es auf meinem Laptop zu starten bekomme ich die Fehlermeldung:
"Programm konnte nicht gestartet werden. Konfigurationsfehler. Neuinstallation bla..." Warum? Wie fix ich das mit einer richtigen Einstellung? Was wäre noch zu beachten? Muss ich Bibliotheken mitliefern?
Tja, viele Fragen auf einmal, entschuldigt...II. PictureBox Transparenz
Mein zweites Problem, das schon länger vorliegt, ich aber bisher nicht fixen konnte, wäre folgendes:
Ich habe in einer PictureBox ein Bitmap mit einer Farbe die ich transparent darstellen wollen würde, den TransparenzKey habe ich auf diese Farbe gestellt, die Farbe wird aber nicht transparent gezeichnet. Verwende ich ein Gif erkennt er zwar den transparenten Kanal (ich geh davon aus), wird aber ebensowenig transparent gezeichnet, sondern grau gefüllt. Der Hintergrund der Form ist übrigends auch auf transparent (also Bkgdclr = TrspKey).
Etwas Ähnliches passiert auch bei einem Bitmap als Hintergrund auf einer Form. TransparenzKey = Farbe die transparent sein soll im Bitmap, was soweit funktioniert bis auf die Tatsache, das ein bis zwei Pixel am Rand weiss gezeichnet werden. Nur minimal. Ich habe definitiv auch keine Farbabstufungen in dem Bitmap (der Bitmap hört sich doch schei**e an, oder? Naja, eigentlich... wenn ich so drüber nachdenke...)
Bow, ja ich will euch nicht mit zuviel geschriebenem langweilen, deshalb belasse ich es mal hierbei. Fall ich noch was vergessen haben sollte, werdet ihr es mir ja hoffentlich sagen.Danke schonmal! :p
-
haSta84 schrieb:
Wenn ich mein Programm erstellen will (*.exe) bekomme ich die Meldung "/MT & /CLR passt nicht zusammen!". Bekomme ich das irgendwie unter einen Hut?
Nein. /CLR setzt die DLL Version der MFC/CRT voraus.
haSta84 schrieb:
Wenn ich "MFC in einer öffentlichen DLL" verwende, dann kompiliert er mir den Code, leider läuft das Programm nur auf meiner Workstation richtig, also ganz richtig, ohne Probleme, jedoch lass ich einen Kollegen das Programm testen oder versuch ich es auf meinem Laptop zu starten bekomme ich die Fehlermeldung:
"Programm konnte nicht gestartet werden. Konfigurationsfehler. Neuinstallation bla..." Warum? Wie fix ich das mit einer richtigen Einstellung? Was wäre noch zu beachten? Muss ich Bibliotheken mitliefern?Dann musst Du eben die passenden DLLs und das passende Manifest mitliefert.
Aber wenn Du /CLR verwendest, musst Du eh das .NET-Framework installieren, dann kannst Du gleich die regist-installieren...
Siehe:
http://www.codeproject.com/cpp/vcredists_x86.asp
-
ASSI!!! Was soll das denn? 450KB Anwendung (incl. Grafiken) mit redist packages ausstatten die nen Neustart benötigen und dann noch dlls und manifeste dazupacken und am besten noch selbst nen msi "compilieren" damit das Paket nacher über 10MB groß ist? Fürn Ars**!
Ne, da portier ich das lieber...
Funktioniert die Java "Write once, run everywhere!" Philosophie eigentlich? Wenn ja, switch ich sofort.
Also die Lösung mit den ganzen Packages und DLLs is ja fürn Arsch.
Wenn ich weder MFC noch CRT verwende, sondern alles "Hart" code, brauch ich dann den ganzen shit? Ich will einfach nur mein kleines Progrämmchen überall laufen haben, ohne novice User mit Neustarts und anderen Buttplugs zu penetrieren.
Ist das VB2005 auch so mit den ganzen Packages und DLLs?
Sowas mach ich nicht...
-
Niemand zwingt Dich dazu /CLR zu verwenden. Du kannst mit VC++ 2005 nativ Win32-Applikationen erzeugen die 20 KB gross sind; ohne das Du was mitliefern musst.
Wenn Du das .NET Framework verwenden willst, dann musst Du auch das in kauf nehmen, was man dazu braucht.PS: VB.NET (und C#) ist immer auf das .NET-Framework angewiesen.
-
Ok, dann darf ich ne ganz ganz blöde Frage stellen. Wie bekomm ich den Managed Code da wieder raus?
Ja ja, ich weiss, ich bin ja schon dabei...
-
Eifach /clr deaktivieren... (Projekteinstellungen: Global; Use Managed Extensions: No).
Dann kannst Du auch wieder die statische CRT verwenden.
-
Gut, ok, dann darf ich jetzt wieder von gaanz vorne anfangen... na gut.