Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    [C] Problema con DLL, LIB, extern "C"

    Ho questo problema con il compilatore di Visual Studio 6.0

    Stavo provando a compilare una .dll, ed ho usato questa dichiarazione:

    codice:
    extern "C" __declspec(dllexport) [prototipo]
    nell'header.

    Quando vado a compilare mi restituisce questo, relativo probabilmente alla stringa "C":
    error C2059: syntax \ error : 'string'

    Dato che sto scrivendo interamente in C ho pensato, probabilmente sbagliando, che avrei potuto fare a meno di extern "C" ed ho modificato i prototipi in questo modo:

    codice:
    __declspec(dllexport) [prototipo]
    il che si compila senza problemi.


    Ora però, quando vado a richiamare le funzioni da una app esterna (linkate tramite il lib e non tramite la dll), ho questo errore qua:

    error LNK2001: unresolved external symbol "void __cdecl ppRottaCrea(int)" (?ppRottaCrea@@YAXH@Z)

    il che mi fa pensare che la libreria è stata compilata con la nomenclatura c++.

    Qualche suggerimento?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    credo di aver risolto

    il file che invoca le funzioni è .cpp, ho modificato l'header della libreria aggiungendo

    codice:
    #ifdef __cplusplus
    extern "C"
    {
    #endif
    
    ...
    
    #ifdef __cplusplus
    }
    #endif
    grazie per aver almeno letto il topic

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.