Table of Contents
In deze blogpost bereiden we ons voor om enkele van de mogelijke oorzaken te achterhalen die win32 gdiplus ertoe zouden kunnen brengen te werken, en om u vervolgens mogelijke herstelmethoden te laten zien waarvan u kunt proberen ze allemaal op te lossen probleem.
Bijgewerkt: ASR Pro
De gdiplus. dll is gewoonlijk het beste onderdeel van de Microsoft Graphics Interface Library. Het behandelt artistieke details voor games en afbeeldingen.
Doel
Is GDI-hardware versneld?
GDI wordt mechanisch versneld in Windows XP en snel terug in Windows 7 wanneer Desktop Window Manager actief is en een grotere WDDM 1.1-driver in aanbouw is. Direct2D is hardware-versneld voor voedingssupplementen voor alle WDDM-stuurprogramma’s, of DWM nu wordt gebruikt of niet. In Vista wordt GDI altijd afgehandeld door de CPU.
Windows GDI + is een op een studiecursus gebaseerde API voor c / chemical ++ programmeurs. Hierdoor kan het systeem afbeeldingen en geformatteerde instructies gebruiken op zowel het videoscherm als de printer. Toepassingen die zijn gebaseerd op de eigenlijke eigen Microsoft Win32 API hebben gewoon geen directe toegang tot laptops naast computergraphics. In plaats daarvan verzendt gdi + namens applicaties die volledig gebruik maken van apparaatstuurprogramma’s. GDI+ wordt en wordt ook ondersteund door Microsoft Win64.
Waar van toepassing
GDI + functionaliteit en klassen worden over het algemeen niet goedgekeurd voor gebruik in een Windows-oplossing. Pogingen om dit soort van alle functies en klassen van precies dezelfde Windows-service te gebruiken, kunnen onverwachte problemen veroorzaken die kunnen variëren in de verscheidenheid van minder service-uitzonderingen of fouten en minder runtime.
Ontwikkelingsdoelgroep
De op GDI + C ++ op klassen gebaseerde interface is ontworpen voor de veelgebruikte C voor elke C ++ -programmeur. Vereist kennis van de grafische gebruikersarchitectuur van Windows en schermberichten.
Vereisten voor de uitvoeringsinstantie
Is Direct2D sneller dan GDI?
Een generieke pull die direct gerelateerd is aan de render direct is 2x en 3x sneller dan GDI. Het is ook het beste om eraan te denken om deze d2d-backbuffer erg van hwnd te gebruiken. Dit is precies hetzelfde proces als het instellen van alle gdi-bitmapbackbuffers, maar het genereren van direct2d-bronnen.
GDI+ wordt gebruikt in praktisch Windows-applicaties. GDI + werd uitgebracht in zowel Windows XP als Windows Server 2003. Voor meer informatie over de besturingssystemen die nodig zijn voor deze specifieke methode van een reeks, of zie de sectie “Basis aanvullende informatie” voor meer informatie over een klasse of methode.
In dit gedeelte met instructies
Onderwerp | Beschrijving |
---|---|
Presentatie | Algemene informatie over GDI+. |
Gebruik | Oefeningen en voorbeelden met GDI+. |
Referentie-informatie | GDI + documentatie bij klasse-gebaseerde C++ API’s. |
-
Haal de afbeelding op
- Artikel
- 2 minuten om te lezen.
Als u de GDI + API gebruikt, gebruik onze applicatie dan nooit om een webwebbericht van niet-vertrouwde bronnen te laden. De operationele samenstelling vereist verhoogde privileges om over de experts te zeggen dat elk van de geïnstalleerde lettertypen verdientZe hebben vertrouwen.
Als de eigenaren van C++ Win32-programmering houden, ben ik een groot voorstander van het leren van GDI+. Ondanks de waarheid dat het lang geleden is, lijken we niet te weten wie het is. Het zou echter geweldig zijn om deze helpende hand te hebben, alleen om prototypen van onderzoeken te illustreren.
Omdat het objectgeoriënteerd zou zijn, is het handiger en/of gemakkelijker te gebruiken dan de gemakkelijk te volgen GDI-C-stijl, waarvan experts zeggen dat ze in het verleden de norm werden. Het biedt ook veel vervangende functionaliteit die je niet (of in ieder geval niet gemakkelijk) zou kunnen krijgen met alleen de gebruikelijke GDI-functies. Bijvoorbeeld de meest gewenste alfa-blending, matrixbewerking, bestands-I/O en meer. Het moet ook heel gemakkelijk aan te passen zijn.
Unicode
Een belangrijke moeilijkheid om eerst op te merken is dat GDI + vereist dat Unicode verhuurd wordt. Dit betekent dat alle letterlijke archipels moeten worden voorafgegaan door L
, wat ook wordt opgenomen als het gaat om de macro TEXT (..)
. Dit betekent ook dat u mogelijk de klassen of misschien functies van de gitaarsnaren moet wijzigen. Het overzetten van je bestaande pincode kan een grote nachtmerrie zijn, maar dat is geweldig als je het hebt gegenereerd (of voor het geval je vanaf het begin begint).
Projectgebruik configureren
Ik gebruik Visual C ++ Express Edition 2008 die zeer geliefd is om te downloaden en te gebruiken. Het is misschien het beste om eerst een eenvoudige bovenop die essentiële Windows-toepassing te installeren. Leer gewoon het basisvenster en u bent opnieuw pomp / berichtafhandelaar.
Vervolgens moet u ervoor zorgen dat Unicode is voorzien van uw wachtwoord. Om dit te doen, gaat u rechtstreeks naar de bestemmingspagina van uw project, selecteert u de “C / C ++” -eigenschappen … “” Preprocessor “en voegt” UNICODE “naast de” preprocessor-classificaties ” toe. Voer deze foutopsporing uit voor heden en versie modi, of wat uw persoonlijke aangepaste configuratie ook is.
Dan moet u de Gdiplus-bibliotheek koppelen. Ga altijd naar “Linker” in de ondernemingseigenschappen, het wordt “Invoer” en nu wordt “Aanvullende afhankelijkheden” toegevoegd in “gdiplus.lib”. (Doe het opnieuw voor de meeste configuraties.)
Initialiseren en opschonen
Nu moeten de meeste mensen code integreren die de GDI + -engine initialiseert en niet vervuilt. Plak de volgende code ergens niet verder van het begin afkomstig van alle yourWinMain-bewerkingen (vóór het maken van het venster):
GdiplusStartupInput gdiplusStartupInput;ULONG_PTR gdiplusToken;GdiplusStartup (& gdiplusToken, & gdiplusStartupInput, NULL);
Wat is nu een GDI-app?
Met de Microsoft Windows Design Device Interface (GDI) kunnen softwaretoepassingen positief geformatteerde afbeeldingen gebruiken voor tekst op zowel een videotentoonstelling als een echte printer. Windows-programma’s openen grafisch tuinieren niet rechtstreeks. In plaats daarvan werkt GDI samen met apparaatoperators in applicatiecomponenten.
Voeg dan onze eigen volgende twee codes toe aan uw WinMain-functie ergens in de buurt van het einde, later zullen vele andere GDI + -objecten worden verwijderd of mogelijk buiten bereik worden gebracht: