Mój system operacyjny to Windows 7 Ultimate 64 bit. Zainstalowałem na nim Visual Studio Express 2012 for Windows Desktop. Następnie utworzyłem pusty projekt i dodałem do niego plik cpp zawierający najprostszy możliwy kod, który wyświetla "hello world" w konsoli:
#include <iostream>
using namespace std;
void main()
{
cout<<endl;
cout<<"Hello World"<<endl;
system("pause");
}
Program zbudowany w trybie Debug (Win32) z poziomu Visuala uruchamia się prawidłowo. Także przy uruchomienie pliku exe bezpośrednio z folderu Debug wszystko jest ok.
Problem pojawia się kiedy chce uruchomić program na innym komputerze. Skopiowałem folder Debug na innego Windowsa 7 64 bit, który nie ma zainstalowanego VS Express 2012 for Windows Desktop. Przy próbie uruchomienia programu z folderu Debug dostaje informację: " The program can't start because MSVCP110D.dll is missing from your computer. Try reinstalling the program to fix this problem " W związku z tym, dodałem do folderu Debug plik msvcp110d.dll pobrany z internetu jednak teraz otrzymuję kolejny komunikat: "The application was unable to start correctly (0xc000007b). Click Ok to close the application " Doszukałem się informacji, że ten komunikat może oznaczać, że aplikacja 32 bitowa próbuje załadować 64 bitowy dll. Zastanawiam się teraz, czy plik MSVCP110D.dll, który znalazłem jest zły (była tylko jedna wersja pliku, bez wzmianki x86 czy x64) czy brakuje jeszcze jakiś innych plików ?