Non esiste un equivalente MS-VC per questo attributo. Vedi http://connect.microsoft.com/VisualStudio/feedback/details/505028/add-weak-function-references-for-visual-c-c. Ho intenzione di suggerire qualcosa di orribile: leggendo lo scopo qui: http://www.kolpackov.net/pipermail/notes/2004-March/000006.html è essenzialmente per definire funzioni che, se i loro simboli esistono, vengono utilizzati, altrimenti, non lo sono, quindi ...
Perché non utilizzare -processore per questo scopo, con l'enorme avvertenza di "se hai bisogno di fare questo a tutti"? (Non sono un fan di raccomandare il pre-processore).
Esempio:
#ifdef USE_MY_FUNCTION
extern void function();
#endif
quindi richiamate in modo appropriato nella logica dell'applicazione, circondato da #ifdef
istruzioni. Se la libreria statica è collegata, come parte del collegamento in corso, modificare le definizioni per definire USE_MY_FUNCTION.
Non proprio un equivalente diretto e molto brutto, ma è il meglio che riesco a pensare.
fonte
2010-02-18 17:37:02
Vedere [Libreria statica di Windows con funzioni predefinite] (http://stackoverflow.com/questions/5097961/windows-static-library-with-default-functions). È questo che stai cercando di ottenere? – brady
Vedere la [risposta di Michael Burr] (http://stackoverflow.com/a/2290843/321013) - MSVC in realtà * si imposta automaticamente su questo comportamento. Se si sostituisce un simbolo già definito in una lib di dipendenza, il simbolo in ".lib" verrà ignorato silenziosamente. –