Select the product you need help with
Creazione di librerie di importazione di 32 bit senza .OBJs o origineIdentificativo articolo: 131313 - Visualizza i prodotti a cui si riferisce l?articolo. In questa paginaSommarioIn questo articolo viene descritto come creare una libreria di importazione specificata di una DLL per il quale non si dispone moduli di codice o l'oggetto di origine. Si è verificato con le versioni di 16 bit di Visual c ++ non è non utilità che può creare una libreria di importazione da una DLL a 32 bit. Nota : questo metodo potrebbe non funzionare con DLL generate con strumenti di sviluppo non Microsoft. InformazioniIn genere, quando crea una DLL o da qualsiasi destinazione che esporta funzioni o elementi di dati, una libreria di importazione (e il file di esportazione) viene generato durante il processo di collegamento. Ma nel caso di una DLL di terze parti non viene fornito con una libreria di importazione, potrebbe essere necessario generare una libreria di importazione per poter utilizzare la DLL correttamente utilizzando il collegamento dinamico in fase di carico. Una libreria di importazione non è necessario per il collegamento dinamico in fase di esecuzione. Esistono due metodi per la creazione una libreria di importazione specificata di una DLL:
Creazione di un file DEFL'unico caso in cui è possibile utilizzare un file DEF per creare una libreria di importazione da una DLL per il quale non si dispone del codice sorgente o moduli di oggetto è se la DLL esporta funzioni tramite un'interfaccia C. In particolare, le funzioni devono dichiarato per utilizzare la convenzione di chiamata C. Viene specificato dall'attributo _cdecl, in genere utilizzata il prototipo della funzione. Si noti che se non è specificato alcun attributo, _cdecl è il valore predefinito quando /GZ (_stdcall è l'impostazione predefinita) o /GR (_fastcall è l'impostazione predefinita) sulla riga di comando CL non viene specificato. Il motivo di questa limitazione si basa su un presupposto apportato dall'utilità LIB che tutti i nomi vengono esportati automaticamente senza un carattere di sottolineatura iniziali. Questo vale solo per i nomi di funzione _cdecl.Specificata una DLL con le funzioni esportate tramite un'interfaccia C, è possibile creare una libreria di importazione attenendosi alla seguente procedura:
Venivano funzioniPer le funzioni esportate che utilizzano convenzioni di chiamata diversa da C, la situazione è un po' più complessa. Questo è particolarmente vero se si considera le funzioni di c ++ e le combinazioni di decorazione del nome complesse coinvolti. Per utilizzare questo metodo, è necessario almeno il file di intestazione che descrive interfaccia della DLL.Per creare prototipi di funzioni da prototipi in un file di intestazione:
EsempioSe il file di intestazione che descrive il MYDLL.DLL appare come: CL /c /Ob0 mydll.CPP Nota: Disattivazione l'inline di funzione è necessario per forzare la generazione di simboli per le funzioni definite in CMyClass. Se venisse attivato l'inline di funzione, il compilatore si si noti che non sono riferimenti alle funzioni membro nell'unità di conversione, in modo che potrebbe ignorare il corpo della funzione. Vedere la discussione in espansione delle funzioni inline in ottimizzazioni nel riferimento di riga di comando di CL Visual c ++. Una volta che si dispone di file obj, è possibile utilizzare LIB /DEF: per creare la libreria di importazione (lib) e il file di esportazione (EXP): LIB /DEF: mydll.OBJ Per ulteriori informazioni sul comando LIB, consultare la "Guida di LIB" Visual c ++ documentazione in linea di. In proposito vedere anche il seguente articolo della Knowledge Base: 140485
(http://support.microsoft.com/kb/140485/EN-US/
)
Esportazione di simboli simili di PASCAL in DLL a 32 bit ProprietàIdentificativo articolo: 131313 - Ultima modifica: martedì 29 giugno 2004 - Revisione: 2.1 Le informazioni in questo articolo si applicano a:
Traduzione automatica articoli Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica. Clicca qui per visualizzare la versione originale in inglese dell?articolo: 131313
(http://support.microsoft.com/kb/131313/en-us/
)
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO. | Traduzione articoli |





Torna all'inizio








