Gotcha beim Erstellen von Dlls!   November 12th, 2010

Ich habe eine Dll mit visual C++ 2008 erstellt. Eine andere Applikation (auch mit mit Visual C++ 2008 erstellt) lädt diese über eine Ladelib am Programmanfang. Auf den meisten Rechnern (Entwicklerrechner) gings gut, bei wenigen Kunden kam die Meldung: “The application failed to initialize properly (0x……..). Click OK to terminate.”. Eine Recherche bei Google brachte viele Sachen mit falschen Rechten von Dlls, die Rechte der Dll waren aber in Ordnung. Die Lösung war dann: Die Applikation war gegen die statische Version der C-Runtime-Bibliothek gelinkt, die Dll gegen die Dll-Version. Auf Rechnern, wo beide kompatibel waren, ging es gut, auf Rechnern, wo die Versionen nicht zusammen passten, ging es schief. Die Lösung war dann, die Dll auch gegen die statische Version der C-Runtime zu linken. Schreibe das in der Hoffnung, das es jemanden hilft, der irgendwann mal auf das gleiche Problem trifft.

Bis dann,

Daniel