Hallo,
nun weiß ich warum man den release modus benutzen sollte *g
VC++ benutzt spezielle debug dlls im debug modus die normalerweise nicht auf Nicht-Entwicklungsrechnern vorhanden sind.
Nun bin ich aber auf die nächste Grausamkreit von MS gestossen ...
Die Abhängigkeit von speziellen dlls die von der Entwicklungsumgebung abhängen....
Dazu kommt noch das man ab XP diese dlls nicht einfach dem Program beilegen kann, sondern das sie speziell installiert werden müssen.
Zitat:
The second change is that projects created with VC2005
IDE now dynamically link to the C-runtime libraries by default. In VC2003, only MFC and managed C++ apps dynamically linked to the CRTs by default.
Finally, the C and C++ runtimes are now implemented as Side-by-Side DLLs. It's no longer enough to copy MSVCR80.DLL/MSVCP80.DLL/MSVCM80.DLL (from now on called the CRT DLLs) into the System32 directory. You must now load the CRT DLLs through a manifest. If you attempt to load the CRT DLLs without using a manifest, the system will detect this, raise an R6034 assertion, and abort(). That's why the CRT DLLs are now located in WinSXS and not in the System32 directory.
Die Problematik ist auch hier beschrieben:
link
Es gibt aber einen Workaround.
Damit meine
dll trotzdem auf anderen rechnern läuft musste ich nun die crt dlls dazupacken, eine
xml manifest datei anlegen und dann läuft es auch auf jedem Rechner.
Diese Vorgehensweise ist aber sehhhhr unbefriedigend, vor allem da ich nichts davon in meiner
dll verwende *grr. Der Orginal Code ist von 2000, ich benutze nur stdio.h und windows.h
Nur weil MS der Meinung ist das müsste so sein wenn man mit VC2005 etwas kompiliert
Kann mir jemand eine gute kostenlose C++ Entwicklungsumgebung empfehlen mit der ich eine ganz simple
dll erstellen kann?
Gruß Oliver