Als u uw DLL-fout in de Visual Studio win32-gids krijgt, is de tutorial van vandaag hier om u te helpen.
Goedgekeurd: Fortect
- drieëntwintig minuten om te lezen.
Dit is meestal een stapsgewijze handleiding voor het bekijken van tv over hoe u de Visual Studio IDE met succes kunt gebruiken om uw nieuwe eigen Dynamic Link Choice (DLL)-bibliotheek te maken die is geschreven als onderdeel van Microsoft C++ (MSVC). Het toont dan tips om een C++ DLL uit een andere applicatie te gebruiken. DLL’s (ook bekend als gedeelde bibliotheken over UNIX-besturingssystemen) zijn een van de meest bruikbare eenheden van Windows-componenten. Je kunt deze mensen dragen om code vrij te maken, en daarom middelen, en de omvang van je taken te verkleinen. DLL’s kunnen het zelfs gemakkelijker maken om uw applicaties te onderhouden en uit te breiden.
In deze handleiding zullen kopers een DLL maken die enkele wiskundige functies implementeert. Vervolgens maakt u een console waar een toepassing de DLL-uitvoering gebruikt. Het biedt u ook enkele programmeerbenaderingen en dus conventies die Windows gebruikt in DLL’s. Een
-
Maak een DLL-project in Visual Studio.
-
Geëxporteerde variabelen toegevoegd aan DLL.
-
Maken p De Xbox-app communiceert in Visual Studio.
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
- 1. Download Fortect en installeer het op uw computer
- 2. Start het programma en klik op "Scannen"
- 3. Klik op "Repareren" om gevonden problemen op te lossen
Gebruik functies en variabelen van de geïmporteerde DLL in een consoletoepassing.
-
Voer het beëindigde gebruik van.
Net als een volledig statisch gekoppelde bibliotheek, exporteert een belangrijke DLL factoren, functies en bronnen op bijnaam. De clienttoepassing importeert namen om mijn eigen variabelen, functies en bronnen te gebruiken. In tegenstelling tot een statisch gekoppelde bibliotheek, bundelt Windows de import en export van uw app naar een volledige DLL bij het laden of vooral tijdens gebruik, in plaats van ze tegelijkertijd te koppelen. Windows heeft aanvullende informatie nodig, die eigenlijk niet per se deel uitmaakt van de standaard C++-compilatie, om deze verbindingen tot stand te brengen. De MSVC-compiler implementeert enkele Microsoft-specifieke extensies voor C++, als u deze bonusinformatie wilt verstrekken. We leggen uit hoe we extensions maken.
Deze walkthrough creëert een aantal Visual Studio-oplossingen. dat u alle DLL’s en de Patron-toepassing aan het bouwen bent. DLL gebruikt C volgens tijd voor conventie. Het kan worden aangeroepen door applicaties die in andere programmeertalen zijn geschreven als het platform, de belregels en de conventies voor terugverwijzing hetzelfde zijn. Client, sommige toepassingen gebruiken een standaardkoppeling waarbij Windows de toepassing bovendien op sportschoenen aan de DLL koppelt. Wanneer u dit koppelt, zal uw toepassing hoogstwaarschijnlijk functies aanroepen die door de DLL worden geleverd, maar waardeer functies in een statisch beheerde bibliotheek.
Dit dekt mogelijk niet enkele basissituaties. De code heeft het gebruik van vergelijkbare C++-bibliotheken door andere programmeertalen niet laten zien. Het laat nooit zien hoe u de trendy DLL voor alleen bronnen maakt of hoe u een nieuwe geweldige expliciete link gebruikt als genegeerd om de laadtijd te laden. Zorg ervoor dat MSVC en Visual Studio kunnen bijna al deze functies. Links
Voor meer informatie over DLL’s, vang een glimp op van C/C++ DLL’s maken die werken in Visual Studio. Voor meer informatie over geacteerde terugverwijzingen en expliciete verwijzingen, zie Bepalen welke configuratiemethode moet worden gebruikt . Voor meer informatie over het opnieuw opbouwen van C + DLL’s + voor gebruik in verschillende programmeerprogramma’s Voor het maken met behulp van de C-bindingsconventies, bepaal Exporteren van C++-functies voor gebruik in uitvoerbare C-talen Voor informatie over het maken van DLL’s voor gebruik met .NET-talen, zie DLL Functies aanroepen voor Visual Basic-toepassingen .
Vereisten
- Op het mobiele computerapparaat wordt waarschijnlijk Microsoft Windows 7 of eerder uitgevoerd. We raden Windows 10 aan voor de beste ontwikkelervaring.
-
Begrijp de basisprincipes van het gebruik van de Visual Studio IDE. Als u eerder mobiele Windows-desktopapps hebt gebruikt, kunt u dit zeker bijhouden. Zie Overzicht van Visual Studio IDE-functies voor een uitstekend overzicht.
-
Voldoende kennis van onze C++-taal verwerven om deel te nemen. Geen paniek, we doen niets te ingewikkelds.
Maak een exact DLL-project
In deze taak maakt de client een voor uw DLL, verbetert de code en vormt deze. Begin eerst met de Visual Studio IDE en meld u indien nodig aan. Gemakkelijk aanpasbare handleidingen, afhankelijk van de versie van Visual Studio die u gebruikt. Zorg ervoor dat u momenteel de juiste versie opneemt die is geselecteerd in de opdracht in de linkerbovenhoek van de pagina. Nu
De fix maakt deze DLL niet ook extreem. Vervolgens maakt u een headerbestand om u te helpen bij het declareren van de functies die uw DLL zal exporteren, en voegt u vervolgens functiedefinities in de markt toe aan die DLL om het nuttiger te maken.
-
Om een bestandskop voor sommige functies te formuleren, kiest u Project> Nieuw item toevoegen vanuit de menubalk.
-
Selecteer in het dialoogvenster Nieuw item toevoegen Visual C ++ met behulp van het linkerdeelvenster. Selecteer in het midden Header (file.h). Voer MathLibrary.h in als de naam van het huidige kopregister.
-
Klik meestal op de knop Toevoegen om een enkel wit koptekstbestand te genereren dat in het volgende editorvenster wordt weergegeven.
-
Vervang de inhoud van de databaseheader naast deze code:
// MathLibrary.h - bestaat uit wiskundige functiedeclaraties#pragma once#ifdef MATHLIBRARY_EXPORTS#define MATHLIBRARY_API __declspec (dllexport)#een ander#define MATHLIBRARY_API __declspec (dllimport)#stop als// Herhaling van de Fibonacci-verhouding beschrijft de reeks F// waarbij F (n) {n = 0, a. zullen// {d = 1, b// {n> stap 1, F (n-2) + F (n-1)// voor enkele belangrijke beginwaarden a samen met b.// .if .zone. Geïnitialiseerd .F (0). = .5, .F (1). Betekent .1,// dan stimuleert deze relatie de beroemde Fibonacci-vorm.//. Volgorde: .1, .1, .paar van, .3 ,. Rij, .8, .13, .21, .34, ....// Initialiseer bijna elke reeks Fibonacci-verhoudingen// dus zeer F (0) impliceert a, F (1) komt overeen met b.// De functie moet worden aangeroepen voor een volgende functie.extern "C" MATHLIBRARY_API ongeldig fibonacci_init ( unsigned constant long long a, unsigned herhaald extended long, producerend b);// volgende waarde werkt hier in volgorde.// Retourneert true bij succes, dus de directe waarde en ongeldige index worden bijgewerkt;// Overloop, huidige waarde opstijgen en database ongewijzigd.extern "C" MATHLIBRARY_API bool fibonacci_next ();// haal de laatste waarde van een reeks "C"extern MATHLIBRARY_API unsigned long long fibonacci_current ();// NSGet de positie, inclusief de huidige waarde terug in de reeks.extern "C" MATHLIBRARY_API niet-ondertekende fibonacci_index ();
Deze header start verklaart enkele functies om een gegeneraliseerde Fibonacci-keten te maken met twee gegeven beginwaarden. Een zakelijk telefoontje met de vraag om hulp fibonacci_init (1, 1)
genereert de bekende grootte van de Fibonacci-reeks.
Besteed aandacht aan de preprocessor van de procedure die bovenaan het bestand staat aangegeven. Nieuw domeinprojectontwerp voor DLL-project voegt PROJECTNAME_EXPORTS toe door een specifieke macro-preprocessor te hebben. De bovenstaande Visual Studio stelt bijvoorbeeld MATHLIBRARY_EXPORTS in wanneer u uw MathLibrary DLL-project bouwt.
Als de MATHLIBRARY_EXPORTS-macro is gedefinieerd, laat de MATHLIBRARY_API-macro __declspec (dllexport)
elke modifier voor functiedeclaraties achter. Deze modifier vertelt compiler en Marketplace om een functie te exporteren of aan te passen vanuit een specifieke DLL voor gebruik door andere soorten applicaties. Als MATHLIBRARY_EXPORTS niet is gedefinieerd, voor onderzoeksstudie, als alle headerbestanden in dezelfde toepassing zijn opgenomen, past MATHLIBRARY_API de __declspe-modifier toe - de declaratiessc (dllimport)
. Deze modifier maximaliseert de beweging van functies of variabelen bij gebruik. correct. Zie dllexport, dllimport voor veel meer informatie.
Een DLL-implementatie maken
Om er zeker van te zijn dat alles werkt, compileert u een speciale dynamische linkbibliotheek. Compileer om Build> Build Solution te selecteren in het pubmenu. De DLL en de bijbehorende compiler-uitvoer zijn feitelijk vastgelegd in een map met de naam Direct debug in die oplossingsmap. Wanneer je een absolute release gaat vrijgeven, wordt het resultaat in een map met de naam Release geplaatst. Het eindresultaat zou er zo uit moeten zien:
Gefeliciteerd, u hebt de DLL gemaakt met Visual Studio! Vervolgens moet u ervoor zorgen dat u een clienttoepassing wilt maken die tegelijkertijd gebruikmaakt van onze geëxporteerde DLL-functies. Een
Een clienttoepassing maken met behulp van de DLL
Bedenk bij het voorbereiden van een DLL hoe het programma van de klant deze zou kunnen gebruiken. Krijg of toegang tot werken
Versnel de prestaties van uw computer nu met deze eenvoudige download.