Какой из этих заголовков взят из MSVCR100.DLL? - PullRequest
1 голос
/ 17 мая 2011

Я работаю над приложением cpp, отлично работает на виртуальной машине, которую я разрабатываю, но на моем ноутбуке (XP без распространяемого пакета c ++) выдается сообщение об ошибке, говорящее о том, что приложению требуется MSVCR100.DLL, а его нет на компьютере.Я не ссылаюсь на dll напрямую нигде в приложении, поэтому я думаю, что это может быть из-за включенных заголовков.Я не хочу использовать эту DLL-библиотеку, я бы предпочел, чтобы приложение работало без нее.Вот следующие заголовки:

#include <winsock2.h>
#include <windows.h>
#include <process.h>
#include <shellapi.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

Я пытался несколько комментировать, но для комментирования другого мне пришлось изменить слишком много кода только для тестирования.

Какой из этих заголовков взят из MSVCR100.DLL?

Для параметра проекта "Библиотека времени выполнения" установлено значение Многопоточность (/MT).

Ответы [ 2 ]

0 голосов
/ 17 мая 2011

Все в библиотеке C зависит от нее, когда вы компилируете свою программу с Visual Studio 2010. Поэтому вы либо статически связываетесь со средой выполнения C, либо развертываете DLL с вашим приложением.знаете, от этого зависят stdlib.h, stdio.h, cmath.h, а также, вероятно, множество заголовков, в зависимости от времени выполнения C, косвенно включены во все остальные заголовки.Поэтому я бы сказал, что все ваши заголовки зависят от MSVCR100.DLL.

Другое решение - установить Visual Studio 2008 + SP1 вместе с 2010 (VC ++ express 2008 работает нормально) и выбрать «Toolset v90» всвойства проекта.

0 голосов
/ 17 мая 2011

MSVCR100.DLL - это библиотека времени выполнения C Visual Studio 2010, я думаю. Я полагаю, в вашей лаборатории нет установленной Visual Studio. Таким образом, вы должны предоставить эту DLL вместе с вашим приложением. Это должно быть в вашей системе разработки.

...