Mischen Statische Bibliotheken von C-Code aus verschiedenen Versionen von Visual Studio gebaut 2002 und später

StackOverflow https://stackoverflow.com/questions/462768

Frage

Ich habe eine statische verknüpfbaren Bibliothek von C und Fortran-Routinen erstellt und zusammen mit dem Visual Studio 2002 C (v7.0) Compiler und das Intel Fortran Compiler 9.0.018 verknüpft.

Der C-Code in meiner Bibliothek Anrufen und Links zu dem Microsoft C-runtime (MSCRT) 2002 statische Bibliotheken (single-threaded). Ich glaube, die aktuelle Versionsnummer der 2002 CRT-Bibliotheken ist v7.0

werde ich auf diese statische Bibliothek als „vs2002if9.lib“ beziehen

Kann ich einen Link statisch auf meinen „vs2002if9.lib“ sicher eine spätere Version von Visual Studio (2003, 2005 oder 2008) ohne Sorgen darüber, wie das rufende Programm verhält sich in Bezug auf den C-Laufzeit Anrufe?

Oder bin ich Probleme schaffen, indem Version der CRT statischen Libs Mischen?

Was passiert, wenn ich meine „vs2002if9.lib“ zu Party-Software-Entwickler 3. zur Verfügung stellen? Welche Anforderungen soll ich ihnen auferlegt?

War es hilfreich?

Lösung

Mischen C Runtimes hat für mich in der Vergangenheit nicht funktioniert. Die einzige Art und Weise, in der ich diese Arbeit sehen kann {vielleicht} ist, wenn Sie vollständig die Verwendung des Stapel / Heap innerhalb der Grenzen des statisch gelinkte C-Runtime [nichts überschreitet Grenzen über die Parameter zu isolieren, aber dann, was Wert ist Ihre vs2009if9 LIB Bereitstellung].

Als Beispiel, wenn Sie einen Zeiger [Heap-Speicher] werden die Zuweisung innerhalb der Anwendung und Weitergabe dieser Zeiger auf die Bibliothek, die Sie zur Verfügung gestellt, sollte die Heap-Manager verwendet werden? Die richtige Antwort ist der Heap-Manager den Zeigers Verwaltung, aber Ihre Bibliothek wird über den anderen Heap-Manager nicht wissen. Es wird immer hässlicher, wenn Ihre Bibliothek Speicher zur Verwendung durch die Anwendung zuweist und es ist die Anwendungen Verantwortung frei / Löschen der bereitgestellten Zeiger mit (schlechtes Design ja, aber immer noch möglich). Auch hier wird der falsche Heap-Manager verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top