Ich habe eine sehr einfache DLL geschrieben in nicht verwalteten C++, die ich von meiner Anwendung aus zugreifen. Ich habe vor kurzem zu Visual Studio 2010 gewechselt, und die DLL ging von 55k auf 35k ohne Codeänderungen, und jetzt wird sie nicht mehr in Windows 2000 geladen. Ich habe keinen Code oder Compilereinstellungen geändert. Ich habe meine definiert Setup für 0x0500, die Windows 2000-Unterstützung enthalten sollte. Ist jemand anderes dazu gekommen, oder haben Sie irgendwelche Ideen, was ich tun kann?Problem mit Visual Studio 2010 kompilierte C++ - DLL in Windows 2000
Antwort
Visual Studio 2010 cannot build binaries that run on Windows 2000. Es ist sogar noch schlimmer, they won't run on Windows XP RTM or Windows XP Service Pack 1 either. Dies liegt daran, dass die C-Laufzeitbibliothek von VS2010 die EncodePointer-API benötigt, die erst ab SP2 verfügbar ist.
Es scheint, dass Sie bei der Installation von VS2008 nicht weiter arbeiten können, wenn Sie frühere Versionen von Windows unterstützen möchten. Sie können entweder Ihr gesamtes Projekt nach Visual Studio 2008 verschieben oder Sie können das vc90 (Visual Studio 2008) -Toolset in Ihren Visual Studio 2010-Projekten anvisieren. Für weitere Details zu der letzteren Methode, siehe diese Frage zu meiner verwandten Frage here.
Danke für den Link, das sind einige unglückliche Nachrichten. :( –
@ Jon Tackabury: Ich weiß - ich möchte wirklich 'auto' verwenden :( –
Ich möchte nicht VS 2008 und 2010 beide installiert haben. :( –
Die Lösung besteht wahrscheinlich darin, EncodePointer (und decodePointer, offensichtlich) in einer separaten lib bereitzustellen und diese vorzugsweise mit KERNEL32.LIB zu verknüpfen. Dies ist ein perfekt unterstütztes Szenario. In der Vergangenheit haben Bibliotheken wie "LIBCTINY" und "UNICOWS" diesen bevorzugten Verknüpfungsmechanismus verwendet, um ausgewählte, aber nicht alle Funktionen aus einer anderen Bibliothek hinzuzufügen/zu ersetzen.
Genau, leider habe ich nicht Sehen Sie Ihre Antwort, bevor Sie meine eigene in dem verknüpften Thema schreiben, sonst würde ich nicht so viel Zeit exp verbringen Ertrinken damit. Dennoch, da meine Antwort gebrauchsfertigen und getesteten Code enthält, hoffe ich, dass es nützlich sein könnte - siehe http://stackoverflow.com/questions/2484511/cani-i-use-visual-studio-2010s-c-compiler -with-visual-studio-2008s-c-runtime/3502056 # 3502056 – Suma
Ein wichtiger Hinweis zur Implementierung: Sie stellen den EncodePointer/DecodePointer (die Funktionen von DLL) nicht direkt zur Verfügung. Sie müssen ihre Importvektoren ersetzen, was beim Lösen von .lib gelöst wird. Sie werden wie _imp__FunctionName aufgerufen. – Suma
- 1. Visual Studio 2010 und Windows 2000
- 2. Problem mit graphics.h in Visual Studio 2010
- 3. Kann eine mit Visual Studio 2008 kompilierte C++ - DLL mit Visual Studio 2005 verwendet werden?
- 4. Visual Studio 2010 Intellisense-Problem
- 5. Problem mit Visual Studio 2010 mit Windows 7 RC1
- 6. Visual Studio 2010 Problem mit .NET 4.0
- 7. Problem Glut lib Arbeit in MS VIsual Studio 2010
- 8. Projektreferenz Problem, Visual Studio 2010
- 9. Visual Studio 2010 C# Rasterformat
- 10. Hinzufügen Verweis DLL Problem in Visual Studio
- 11. Problem, während ein C++ Projekt mit Visual Studio Debuggen 2010
- 12. GUI C++ Qt mit Visual Studio 2010
- 13. Visual Studio 2010 "Referenz hinzufügen" kopiert dll in bin-Verzeichnis?
- 14. Erstellen von DB-Problem, Visual Studio 2010
- 15. VisualStudio 2010 - Dll Fehler: __vcrt_cleanup_type_info_names
- 16. mit CCCC auf Windows XP mit Visual Studio 2010
- 17. einschließlich verknüpfte DLL in Installer-Paketen - Visual Studio 2010
- 18. Visual Studio 2010 64-Bit-COM-Interop-Problem
- 19. Visual Studio Debugger Schritt in kompilierte Quelle
- 20. Visual Studio 2010 Installation
- 21. Visual Studio 2010 Windows Forms Designer Probleme
- 22. Visual Studio 2010 Setup-Projekt Problem
- 23. Visual Studio 2010-Designercodevorlage
- 24. Verwenden einer DLL in Visual Studio C++
- 25. Windows Form Anwendung C Shar Visual Studio 2010
- 26. Visual Studio 2010 oder C/C++ - Leistungsmonitore
- 27. Speicher in C#, Visual Studio 2010, Fehler
- 28. wie Visual-Studio 2010 in C++ 11
- 29. C# -Modus in Visual Studio 2010 Professional
- 30. Referenz-Nicht-GAC-Version der DLL in Visual Studio 2010
mögliche Duplikate von [Kann ich den C++ - Compiler von Visual Studio 2010 mit der C++ - Laufzeitbibliothek von Visual Studio 2008 verwenden?] (Http://stackoverflow.com/questions/2484511/cani-i-use-visual-studio-2010s-c -compiler-with-visual-studio-2008s-c-laufzeit) – Suma