| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Dinamico Chiamata di funzioni nelle DLL
    Una libreria di collegamento dinamico o DLL , consente a un'applicazione di caricare solo il codice eseguibile minimo necessario in memoria in fase di esecuzione . Ogni volta che il programma chiama una funzione in una DLL , il sistema operativo carica la DLL in memoria secondo le specifiche del programmatore . Fino a quando il programma in esecuzione non fa riferimento a una funzione di DLL , DLL , che non ha bisogno di occupare spazio . Questo permette di risparmiare un sacco di risorse e aumenta le prestazioni in fase di esecuzione . Se la libreria fosse statico , tutto il codice della libreria saranno allegati al codice eseguibile del programma principale e il programma di gigante avrebbe dovuto rimanere nella memoria per tutta la fase di esecuzione. La versione Unix o Linux di una DLL di Windows è una libreria condivisa , costruita di conseguenza con l'estensione ". Così . " Windows , Unix e Linux hanno convenzioni specifiche per accedere alle funzioni di DLL o librerie condivise . Esportazione Oggetti Windows DLL utilizzando dllexport chiave

    Per fare una funzione , classe , elemento di dati o di una funzione membro della classe accessibile al programma di Windows chiamata , è necessario esportarlo prima . Una classe o una funzione possono essere esportati durante la sua definizione utilizzando il " __declspec ( dllexport ) " parola chiave prima del nome della funzione, una classe o una variabile , come segue :

    Void __ declspec ( dllexport ) MyClass : CObjectName pubblica { ..... }

    Nel file di intestazione DLL , ha messo questa parola chiave prima del nome della funzione in una dichiarazione di prototipo . Il " __declspec ( dllexport ) " parola chiave memorizza i nomi delle funzioni in tabella di esportazione della DLL. Per economizzare lo spazio che questa tabella occupa , usano i numeri ordinali invece di nomi di funzione .
    Esportazione di Windows DLL oggetti tramite modulo di file di definizione

    Come alternativa alla parola " __declspec ( dllexport ) , "creare un file di definizione del modulo in cui si afferma il nome della libreria , descrizione facoltativa ed elenca i nomi di funzioni, classi e variabili di dati nella DLL con valori ordinali opzionali . Il valore ordinale di una funzione varia da 1 a N , dove N è il numero di funzioni nella DLL . Il file di definizione del modulo ha l'estensione di seguito è riportato un esempio di un file di definizione del modulo , o un file DEF "DEF . ». : .

    BIBLIOTECA ReportWriterDESCRIPTION Questa libreria dinamica contiene la funzionalità generatore di report di MyProduct.RPT_setup @ 1RPT_design @ @ 2RPT_run 3RPT_print @ 4

    Se si crea una DLL MFC utilizzando creazione guidata applicazione di Visual Studio , la procedura guidata genera un file di scheletro. DEF per la DLL e aggiungerlo al progetto. Aggiungere le voci per le funzioni di DLL in questo file . DEF per esportarli . Il formato del prototipo di funzione utilizzata dal programma chiamante deve corrispondere al formato delle voci di funzione nel file . DEF . Utilizzare semplici definizioni in entrambi i luoghi , o compilatore specifico , generato dal compilatore definizioni di entrambi i luoghi costantemente .
    Di importazione ed esportazione di estensione DLL

    Microsoft Fondazione DLL classe di estensione consiste tipicamente di classi riutilizzabili derivate da tipi di classe MFC esistenti. Essi sono costruiti utilizzando una versione DLL di MFC , e possono essere richiamati dalle applicazioni e DLL costruite utilizzando questa versione condivisa di MFC . Per esportare le classi in DLL di estensione , utilizzare la macro " AFX_EXT_CLASS " prima del nome della classe in questo modo: Classe CMyViewClass AFX_EXT_CLASS : CView pubblico { //Corpo della classe }; Se si utilizza un file DEF , aggiungere il seguente codice macro all'inizio. e alla fine del file di intestazione DLL estesa : # undef AFX_DATA # define AFX_DATA AFX_EXT_DATA // estesa # undef AFX_DATA # define AFX_DATA

    Queste direttive del preprocessore assicurarsi che le variabili MFC e derivazioni ed esportate dalla DLL estesa.
    Importazione di funzioni di DLL

    l'altro lato l'esportazione di oggetti da loro DLL è l'importazione in applicazioni che utilizzano il " __declspec (dllimport ) "La parola chiave .
    Export C Funzioni per l'utilizzo in C + + o eseguibili

    Se il programma chiamante o la funzione è scritto in C + + , utilizzare il C " extern C " direttiva del preprocessore nell'intestazione DLL se le funzioni di DLL sono scritti in C.

    Previous :

    next :
      Articoli Correlati
    ·Come usare OpenGL per Linguaggio C 
    ·Come unire unici algoritmi Integer 
    ·Come fare un programma utilizzando Microsoft Visual C 
    ·Come convertire una doppia per un numero intero in C 
    ·Come creare illuminazione dinamica in GTKRadiant 
    ·Come calcolare il tempo in C in Linux 
    ·Come creare grafici in Visual C 
    ·Come dichiarare una funzione in C 
    ·Come saltare fuori di una funzione void in C + + 
    ·Come utilizzare le variabili globali per programmatori …
      Articoli in evidenza
    ·Come trovare la media, con Netbeans 
    ·Come configurare Apache con Rails 
    ·Come chiamare un pacchetto di Oracle da Visual Basic 
    ·Come fare il parsing nome dell'ancora Links in PHP 
    ·Come modificare testo su etichette in Java 
    ·Come rimuovere un valore stringa in Regedit 
    ·Come mettere PHP in un Iframe 
    ·Come formattare una variabile al primo decimale in Java…
    ·MySQL Error 1030 
    ·Come convertire INT a Galleggiante 
    Copyright © Conoscenza Informatica http://it.wingwit.com