Domanda

sto vivendo frustrazione ^ Frustraion con questo% & $ ^ & VS IDE. Sto usando Visual C ++ 2008 SP1 3.5 (ma ho anche la Pro Edition se ciò che è necessario e non voglio usare LoadLibrary ())

Ho un Dll di test creato in un'altra lingua (di base non C in effetti) che contiene una funzione CDECL che aggiunge un 'int' a un 'doppio'. Vorrei davvero aggiungere un int in un float utilizzando STDCALL, ma se può ottenere il primo a lavorare prima che sarebbe un importante acheivement.

Ho letto molto e provato: http://support.microsoft.com/kb/313981 http://www.codeproject.com/KB/DLL/loadingdll.aspx Collegamento a un lib statica che si collega a una statica lib staticamente e dinamicamente le DLL che collegano generati con diverse versioni di visual Studio

ho scritto un bel file di intestazione per l'AddShow.dll chiamato AddShow.h

DLLAPI int __cdecl AddTwoNum(int n, double f);

Poi ho usato questo ingegnoso strumento per creare il file lib: http://www.binary-soft.com/dll2lib/dll2lib.htm

Ora che cosa?

Ho provato a fare clic destro e 'Add' poi 'Classe" poi 'componant Class' quindi specificare il percorso e il nome della DLL, ma ottengo 8 miglia di gonfiare e l'intera cassetta degli attrezzi finestre e un nuovo file AddShow.cpp.

Il mio codice C ++ è molto semplice:

extern int __cdecl AddTwoNum(int n, double f);

int main()
{
    int n, RetVal;
  double d;

        n = 33;
        d = 66.6;

    RetVal = AddTwoNum(n, d);

    cout << "RetVal=" << RetVal;

    return 0;
}

Come faccio ottengo solo l'IDE per collegare il file Lib?

AGGIUNTO:

after linking (.lib file is in the debug file) I get the following error:
Compiling...
main.cpp
Linking...
main.obj : error LNK2019: unresolved external symbol "int __cdecl AddTwoNum(int,double)" (?AddTwoNum@@YAHHN@Z) referenced in function _main
C:\C++\FirstDll\Debug\FirstDll.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\C++\FirstDll\FirstDll\Debug\BuildLog.htm"
FirstDll - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
È stato utile?

Soluzione

Si può andare a:

  

Proprietà progetto -> Linker -> ingresso

Allora aggiungi la tua Lib alle "Dipendenze aggiuntive".

Inoltre, si può mettere

#pragma comment(lib, "<your .lib>")

nel file cpp.

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