Domanda

Ho un progetto che utilizza C ++ / CLI per implementare un'interfaccia grafica e un po 'di elaborazione in background di parlare con un sensore. Ho ottenuto che tutto lavoro e un sacco di roba comunicazioni che usiamo per comunicare il sensore si siede in una DLL. Il problema è che mi piacerebbe combinare la libreria nel eseguibile principale per evitare di doversi preoccupare di distribuzione DLL.

Ho un progetto demo che funziona bene con un lib ma quando provo e passare il corpo di codice mani per produrre un lib invece di dll ottengo il seguente errore:

1>------ Build started: Project: MyTool, Configuration: Debug Win32 ------
1>Compiling...
1>stdafx.cpp
1>.\stdafx.cpp : fatal error C1113: #using failed on 'c:\projects\MyTool\debug\MyLib.lib'

Un po 'di googling suggerisce questo accade quando non hai l'interruttore MSIL applicata, ma è sicuramente in là nel progetto biblioteca.

Ho un misto di codice gestito e non gestito sia il mio progetto demo e la cosa reale, quindi sono veramente fatica a vedere qual è il problema qui.

Ogni suggerimento sarà molto ben accetti!

È stato utile?

Soluzione

sto indovinando un po ', ma ho il sospetto il progetto "MyTool" ha il progetto "MyLib", come uno dei suoi "riferimenti" (menu "Progetto" >> >> Proprietà Proprietà comuni >> Bibliografia).

Quando si cambia il tipo di progetto MyLib ad un LIB invece di una DLL, è necessario rimuovere "MyLib" dai riferimenti del progetto. È quindi aggiornare le dipendenze del progetto della soluzione ( "Progetto" Menu >> "Progetto Dipendenze ...") in modo che MyTool dipende MyLib.

Altri suggerimenti

Ho anche imbattuto in questo. Il motivo che stava venendo a mancare era perché mi stava compilando la mia DLL native / C ++ gestito, per indirizzare NET 4.0. E la DLL che stavo #using era una DLL NET 2.0. Come tale, stava fallendo, anche se i percorsi ei nomi dei file allineati perfettamente. In questo caso il messaggio di errore è stato assolutamente di nessun aiuto a tutti. Ho risolto aggiornando il DLL indipendente per .NET 4.0. In modo che entrambi i gruppi sono state utilizzando lo stesso framework .NET.

Se si collega a una modalità mista (gestito / native) DLL si può ottenere questo errore. Il che non si dovrebbe, se il progetto utilizza CLR anche se uno dei file di origine non lo fa. Ma comunque, se questo è il caso, quindi provare a rimuovere il riferimento da Project | Properties | | Proprietà comuni. Riferimenti e poi ri-aggiungerlo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top