Executável C++ Visual e em falta MSVCR100d.dll

Sei que isso foi perguntado em outros lugares e respondido, mas estou tendo problemas com a MS Visual Studio 2010. Eu desenvolvi um executável em C++, mas se eu executar a versão de lançamento em uma máquina que não tem a biblioteca de runtime VC++ (ie, msvcr100d.dll), eu fico com o "programa não pode começar porque msvcr100d.dll está em falta no seu computador" erro.

Isto é estranho por duas razões:
  • porque é que está a tentar ligar-se à versão de depuração do redistribuível?
  • tentou aplicar esta correcção, definir o tempo de execução biblioteca de ajuste para /MT, em vez de /MD (multi-threaded DLL), mas que só fez o pior do problema (se eu copiados manualmente msvcr100d.dll, em seguida, ele disse que não conseguia encontrar msvcp110.dll).

Como posso embalar a biblioteca de tempo de execução com o meu executável para que possa executá-la em máquinas que não tenham o MS VC 2010 ou o redistributável instalado?

Eu sei que é considerado um risco para a segurança incluir uma cópia do DLL, já que não o fará. nunca ser atualizado, mas meu objetivo é apenas enviar este executável a alguns amigos no curto prazo.

Author: KarSho, 2012-05-02

6 answers

Você definitivamente não deve precisar da versão de depuração do CRT se estiver compilando no modo "release". Você pode dizer que eles são as versões de depuração dos DLLs porque eles terminam com um {[[0]}.

Mais para o ponto, a versão de depuração é não redistribuível, por isso não é tão simples como "embalá-lo" com o seu executável, ou fechar esses DLLs.

Verifique se está a compilar Todos os Componentes da sua aplicação no modo" release", e que está ligando a versão correta do CRT e quaisquer outras bibliotecas que você usa (por exemplo, MFC, ATL, etc.).

Você irá , é claro, necessitar msvcr100.dll (repare na ausência do sufixo d) e alguns outros se ainda não estiverem instalados. Direccione os seus amigos para obter o Visual C++ 2010 Redistributável (ou x64), ou inclua isto na sua aplicação automaticamente, construindo um instalador.

 42
Author: Cody Gray, 2012-05-02 02:13:08

Para mim o problema apareceu nesta situação:

Instalei o VS2012 e já não precisava do VS2010. Eu queria limpar o meu computador e também remover os executáveis VS2010 runtime, pensando que nenhum outro programa iria usá-lo. Em seguida, eu queria testar o meu DLL anexando-o a um programa (vamos chamá-lo de programa X). Recebi a mesma mensagem de erro. Pensei que tinha feito algo errado ao compilar o DLL. No entanto, o verdadeiro problema era que eu anexei o DLL ao programa X, e o programa X foi compilado em VS2010 com informações de depuração. É por isso que o erro foi lançado. Recompilei o programa X em VS2012, e o erro desapareceu.

 2
Author: tmighty, 2013-11-20 10:02:52

Este problema foi explicado na Biblioteca MSDNe, tanto quanto sei, a instalação do pacote Redistributável da Microsoft pode ajudar.

Mas por vezes pode ser utilizada a seguinte solução (como solução lateral do programador):

No teu Estúdio Visual, abre. e mudar a opção Runtime Library para /MT em vez de /MD
 2
Author: VolAnd, 2015-04-28 13:10:06

Normalmente a aplicação que falha a .dll indica que versão você precisa-se não funcionar, basta baixar o Microsoft visual C++ 2010 x86 ou x64 a partir deste link:

Para 32 bits Os: Aqui

Para 64 bits Os: Aqui

 1
Author: Ashutosh kumar, 2013-07-10 17:24:49
Tenho o mesmo erro. Estava a referir-me a um VS2010 DLL num projecto VS2012. Recompilei o DLL em VS2012 e agora está tudo bem.
 1
Author: Daniel Bonetti, 2013-12-23 20:34:31

A versão de depuração das dlls da biblioteca vc++ não pretende ser redistribuída!

As versões de depuração de uma aplicação não são redistribuíveis e a depuração as versões das DLLs da biblioteca C++ Visual não são redistribuíveis. Você pode implantar versões de depuração de aplicações e DLLs visuais em C++ apenas para seus outros computadores, com o único propósito de depuração e teste as aplicações em um computador que não tem Estúdio Visual fornecer. Para mais informações, consulte Redistribuir Ficheiros C++ Visuais.

Também vou fornecer a ligação: http://msdn.microsoft.com/en-us/library/aa985618.aspx

 1
Author: SofDev, 2014-10-10 13:50:08