Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Ошибка при запуске программы в режиме Debug

Недавно заметил что все мои проекты которые я раньше без проблем запускал, запускаться перестали, при их запуске система выдает ошибку "Запуск программы невозможен, так как на компьютере отсутствует MSVCR120D.dll. Попробуйте переустановить программу, на других компьютерах работали без проблем, пытался вручную вставить эти файлы в системные папки, обновлял vcredist, не помогло, хочу что-бы программы работали как и раньше без изменения параметров debug в Visual Studio 2013. Надеюсь на вашу помощь
Ответ:
Сообщение от bugmeno7
Недавно заметил что все мои проекты которые я раньше без проблем запускал, запускаться перестали, при их запуске система выдает ошибку "Запуск программы невозможен, так как на компьютере отсутствует MSVCR120D.dll.
Обсуждалось уже много раз.
Компилируйте свою программу в конфигурации Release, с настройкой
"Runtime Library = Multi-Threaded /MT". А для работы на XP нужно,
чтобы был включен так называемый "XP Toolset" (VS2012 и выше).
Вопрос: Запуск программы невозможен, так как на компьютере отсутствует rtl120.bpl

Написал программу на C++ Builder на моём компьютере программа работает нормально, а на других появляется такое сообщение "Запуск программы невозможен, так как на компьютере отсутствует rtl120.bpl." Подскажите пожалуйста что это может быть и способ устранения этой неполадки.
Ответ: А что, в RAD Studio 10 что-то изменилось? Отключение Dynamic RTL и переход в Release уже не помогает. Упорно просит BORLNDMM.dll Если отключить в свойствах Классический компилятор Borland, то вообще не компилится.
Вопрос: Запуск программы невозможен так как на компьютере отсутствует msvcr120.dll

Скомпилировал консольное преложение в VS C++ у меня работает скидываю другим пишет запуск программы невозможен так как на компьютере отсутствует msvcr120.dll
Ответ: Обсуждалось многократно.
Нужно пересобрать приложение с настройкой Runtime Library = Multi-Threaded (/MT).
Конфигурация должна быть Release.

Либо копировать вместе с exe файлы msvcr120.dll и msvcp120.dll из папки VC\redist\CRT с
установленной Visual Studio.

Либо заставлять клиента устанавливать Visual C++ Redistributable соответствующей версии.
Вопрос: На компьютере отсутствует MSVCP120.dll

Доброго времени суток.

Windows 7 SP1 x64, MS Visual Studio 2013.

На машинке разработчика консольное приложение запускается. На др. компьютере получаю для сборки, собранной в DEBUG:
---------------------------
some_app.exe - Системная ошибка
---------------------------
Запуск программы невозможен, так как на компьютере отсутствует MSVCP120D.dll. Попробуйте переустановить программу.
---------------------------
ОК
---------------------------

Для сборки, собранной в режиме RELEASE:
---------------------------
some_app.exe - Системная ошибка
---------------------------
Запуск программы невозможен, так как на компьютере отсутствует MSVCP120.dll. Попробуйте переустановить программу.
---------------------------
ОК
---------------------------


Для MS Visual Studio 2015 получаю аналогичную проблему с той лишь разницей, что в сообщениях фигурируют MSVCP140D.dll и MSVCP120.dll соответственно.

Почему такое происходит и как грамотно решить обозначенную проблему?

Спасибо.
Ответ: Несколько смущает эта фраза:
MSDN
and debug versions of the Visual C++ library DLLs are not redistributable.

Мне она кажется несколько противоречащей той, которую я показал в предыдущем сообщении: мол мол отладочная версия не распространяется, но вы можете использовать её для отладки. Возникает немой вопрос: где тогда её брать?
Вопрос: Запуск программы невозможен, так как на компьютере отсутствует sfml-graphics-d-2.dll

Выскакивает ошибка, что на компьютере нет sfml-graphics-d-2.dll. Я подключил папку из папки SFML папку include и lib.
В дополнительных зависимостях написал: sfml-graphics-d.lib; sfml-window-d.lib; sfml-system-d.lib.
В определениях препроцессора написал: SFML_DYNAMIC.
Что не так? Читал, что нужно закинуть какие то файлы sfml-graphics.lib sfml-window.lib sfml-system.lib в ту же папку, где находится exe. Какие именно файлы нужно залить? Те, что находятся в папке "SFML\lib"? И куда именно их закидывать? Ничего не понимаю.
Ответ: Чтобы ОС нашла нужный dll файл, он должен находиться либо в текущей директории (при запуске из отладчика это папка проекта), либо в windows каталоге, либо его надо зарегистрировать из командной строки
Код Bash
1
>regsvr32  d:\aaaa\bbbbb\имя_папки_где_эта_dll_лежит\sfml-graphics-d-2.dll
Вопрос: Ошибка при запуске программы: "" is an invalid integer - Lazarus

В компиляции не было ошибок. Но при запуске программы и нажатии кнопки вылезает диалоговое окно с данной ошибкой. Помогите пожалуйста.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
procedure TForm1.Button1Click(Sender: TObject);
var px1,px2,px3,px4,px5,py1,py2,py3,py4,x1,x2,x3,x4,x5,y1,y2,y3,y4,xy11,xy21,xy31,xy41,xy51,xy12,
xy13,xy14,xy22,xy32,xy42,xy52,xy23,xy24,xy33,xy43,xy53,xy34,xy44,xy54:integer;
Mx,My,Mx2,Mx3,Dx,Dy,OTKLx,OTKLy,M1,M2,M3,U1,U2,U3,Mxy,Rxy:real;
begin
x1:=StrToInt(Edit1.Text);
x2:=StrToInt(Edit2.Text);
x3:=StrToInt(Edit3.Text);
x4:=StrToInt(Edit4.Text);
x5:=StrToInt(Edit5.Text);
y1:=StrToInt(Edit6.Text);
y2:=StrToInt(Edit7.Text);
y3:=StrToInt(Edit8.Text);
y4:=StrToInt(Edit9.Text);
xy11:=StrToInt(Edit12.Text);
xy12:=StrToInt(Edit10.Text);
xy13:=StrToInt(Edit11.Text);
xy14:=StrToInt(Edit17.Text);
xy21:=StrToInt(Edit13.Text);
xy31:=StrToInt(Edit19.Text);
xy41:=StrToInt(Edit20.Text);
xy51:=StrToInt(Edit18.Text);
xy22:=StrToInt(Edit14.Text);
xy32:=StrToInt(Edit21.Text);
xy42:=StrToInt(Edit22.Text);
xy52:=StrToInt(Edit23.Text);
xy23:=StrToInt(Edit15.Text);
xy24:=StrToInt(Edit16.Text);
xy33:=StrToInt(Edit27.Text);
xy43:=StrToInt(Edit25.Text);
xy53:=StrToInt(Edit24.Text);
xy34:=StrToInt(Edit26.Text);
xy44:=StrToInt(Edit29.Text);
xy54:=StrToInt(Edit28.Text);
px1:=xy11+xy12+xy13+xy14;
px2:=xy21+xy22+xy23+xy24;
px3:=xy31+xy32+xy33+xy34;
px4:=xy41+xy42+xy43+xy44;
px5:=xy51+xy52+xy53+xy54;
py1:=xy11+xy21+xy31+xy41+xy51;
py2:=xy11+xy22+xy32+xy42+xy52;
py3:=xy13+xy23+xy33+xy43+xy53;
py4:=xy14+xy24+xy34+xy44+xy54;
Mx:=(x1*px1)+(x2*px2)+(x3*px3)+(x4*px4)+(x5*px5);
My:=(y1*py1)+(y2*px2)+(y3*py3)+(y4*py4);
Dx:=(sqr(x1)*px1)+(sqr(x2)*px2)+(sqr(x3)*px3)+(sqr(x4)*px4)+(sqr(x5)*px5)-sqr(Mx);
Dy:=(sqr(y1)*py1)+(sqr(y2)*py2)+(sqr(y3)*py3)+(sqr(y4)*py4)-sqr(My);
OTKLx:=sqrt(Dx);
OTKLy:=sqrt(Dy);
Mx2:=(sqr(x1)*px1)+(sqr(x2)*px2)+(sqr(x3)*px3)+(sqr(x4)*px4)+(sqr(x5)*px5);
Mx3:=((x1*x1*x1)*px1)+((x2*x2*x2)*px2)+((x3*x3*x3)*px3)+((x4*x4*x4)*px4)+((x5*x5*x5)*px5);
U1:=Mx;
U2:=Mx2;
U3:=Mx3;
M1:=0;
M2:=U2-sqr(U1);
M3:=U3-3*U1*U2+(2*U1*U1*U1);
Mxy:=(x1-Mx)*(y1-My)*xy11+(x1-Mx)*(y2-My)*xy12+(x1-Mx)*(y3-My)*xy13+
(x1-Mx)*(y4-My)*xy14+(x2-Mx)*(y1-My)*xy21+(x2-Mx)*(y2-My)*xy22+(x2-Mx)*(y3-My)*xy23+
(x2-Mx)*(y4-My)*xy24+(x3-Mx)*(y1-My)*xy31+(x3-Mx)*(y2-My)*xy32+(x3-Mx)*(y3-My)*xy33+
(x3-Mx)*(y4-My)*xy34+(x4-Mx)*(y1-My)*xy41+(x4-Mx)*(y2-My)*xy42+(x4-Mx)*(y3-My)*xy43+
(x4-Mx)*(y4-My)*xy44+(x5-Mx)*(y1-My)*xy51+(x5-Mx)*(y2-My)*xy52+(x5-Mx)*(y3-My)*xy53+
(x5-Mx)*(y4-My)*xy54;
Rxy:=Mxy/(OTKLx*OTKLy);
Label3.Caption:='U1: ' +FloatToStr(U1);
Label4.Caption:='U2: ' +FloatToStr(U2);
Label5.Caption:='U3: ' +FloatToStr(U3);
Label6.Caption:='M1: ' +FloatToStr(M1);
Label7.Caption:='M2: ' +FloatToStr(M2);
Label8.Caption:='M3: ' +FloatToStr(M3);
Label9.Caption:='Mx: ' +FloatToStr(Mx);
Label10.Caption:='My: ' +FloatToStr(My);
Label11.Caption:='Dx: ' +FloatToStr(Dx);
Label12.Caption:='Dy: ' +FloatToStr(Dy);
Label13.Caption:='sigmaX(откл): ' +FloatToStr(OTKLx);
Label14.Caption:='sigmaY(откл): ' +FloatToStr(OTKLy);
Label15.Caption:='Mxy: ' +FloatToStr(Mxy);
Label16.Caption:='Rxy: ' +FloatToStr(Rxy);
Ответ: Какой капец... Одних переменных скока... ох... Что это? Какая была задача? %))

А по поводу ошибки - в каком-то из вашей горы "Text" была пустота...

Добавлено через 50 секунд
Дословно - "Не удалось сконвертировать в число пустоту".
Вопрос: Создание файла при запуске программы

Доброго времени суток. Я снова с той же программой,уже успевшей многим надоесть)) При запуске программы создается файл по указанному пути (строки 71 - 77 в Unit1) Путь t.path указывается пользователем при первом запуске программы. Проблема такая: при запуске вместо создания текстового файла по указанному пути создается файл без расширения в самой папке с программой. Совершенно не понимаю,почему это так происходит. Прошу помощи =) (Для работы программы нужно создать папку "winhack" в ProgramData)
Ответ:
Сообщение от GoodWeather
И где тут проверка на существование?
Эм
Delphi
1
2
3
4
5
if t.path = ''
  then begin
   showmessage('Путь для сохранения файла-проверки не введен');
   exit
  end
Я же сказал,что это далеко не окончательная версия. Разумеется,что нужно будет предусмотреть и отсутствия файла (хотя,это и так уже есть: если файла настроек нет,то выйдет окно с просьбой о вводе настроек) А вот как сделать проверку на повреждение файла - еще не знаю)
Вопрос: Как сделать чтобы при запуске программы form2 отображалась 5 секунд?

Как сделать чтобы при запуске программы form2 отображалась 5 секунд потом закрывалась и уже для работы как обычно отображалась form1? В билдере была такая примочка как таймер. В лазарусе как это реализовать?
Ответ: Да. interval 5000 милисекунд.
Вопрос: Открытие Form2 при запуске программы первой

При запуске программы нужно,чтобы сначала открылась Form2,которую можно закрыть кнопкой. А после открылась Form1 с рабочей частью.
Ответ: все, спс работает
Вопрос: Перехват запуска программ

Всем привет.
Нужно сделать на свой сервер перехват запуска программ с запросом: Запустить и добавить в исключения, или заблокировать.
Вопрос стоит именно в том, как перехватывать запуск программ?

Добавлено через 6 минут
Есть такая идея: при попытке запуска, ставим процесс на паузу, идем в путь файла и проверяем md5 файла в белом списке. Если такого нет, то выходит форма с вопросом.
Все тот же вопрос - как отследить, что запускается какой-то новый процесс?
Ответ: _Dimon_, это проблема курицы и яйца.
Чтобы находиться выше UAC, вредоносный код сначала должен попать на
компьютер и получить права администратора. А для этого ему сначала нужно
каким-то способом обойти UAC. Да, способы есть, но на нормально настроенной
системе площадь атаки очень маленькая и уязвимости постепенно закрываются.