Es gibt kein MS-VC-Äquivalent zu diesem Attribut. Siehe http://connect.microsoft.com/VisualStudio/feedback/details/505028/add-weak-function-references-for-visual-c-c. Ich werde etwas Schreckliches vorschlagen: Lesen Sie den Zweck hier: http://www.kolpackov.net/pipermail/notes/2004-March/000006.html, und zwar im Wesentlichen, um Funktionen zu definieren, die verwendet werden, wenn ihre Symbole existieren, andernfalls nicht, also...
Warum nicht Preprozessor für diesen Zweck verwenden, mit dem großen Vorbehalt "falls Sie dies überhaupt tun müssen"? (Ich bin kein Fan der Empfehlung von Preprozessor).
Beispiel:
#ifdef USE_MY_FUNCTION
extern void function();
#endif
rufen Sie dann entsprechend in der Anwendungslogik auf, umgeben von #ifdef
Anweisungen. Wenn Ihre statische Bibliothek eingebunden ist, passen Sie im Rahmen des Einbindungsprozesses die Definitionen an, um USE_MY_FUNCTION zu definieren.
Nicht ganz ein direktes Äquivalent und sehr hässlich, aber es ist das Beste, woran ich denken kann.
1 Stimmen
Siehe Windows-Statikbibliothek mit Standardfunktionen. Ist das das, was Sie erreichen möchten?
0 Stimmen
Siehe die Antwort von Michael Burr - MSVC verwendet tatsächlich standardmäßig dieses Verhalten. Wenn Sie ein Symbol überschreiben, das bereits in einer Abhängigkeitsbibliothek definiert ist, wird das Symbol in der
.lib
stillschweigend ignoriert.0 Stimmen
VC++ bietet keine explizite Möglichkeit, Symbole als schwach zu deklarieren - aber es gibt zwei Alternativen, die nahe kommen. Überprüfen: ofekshilon.com/2014/02/10/linker-weak-symbols