Вверх ↑
Этот топик читают: Гость
Ответов: 83
Рейтинг: 0
#1: 2020-06-06 22:39:23 ЛС | профиль | цитата
Ребята сегодня перенес свою программу на рабочий сервер и при запуске получаю ошибку KernelBase.dll, на домашнем ПК (Windows 10) все работает прекрасно. Как подружить программу и windows 2012 r2? Можно как то эту библиотеку всунуть в саму программу или указать путь в корневую директорию программы и взять эту библиотеку со своего ПК?



Редактировалось 2 раз(а), последний 2020-06-06 22:40:57
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16843
Рейтинг: 1232
#2: 2020-06-07 08:44:32 ЛС | профиль | цитата
germes5558 писал(а):
Можно как то эту библиотеку всунуть в саму программу или указать путь в корневую директорию программы и взять эту библиотеку со своего ПК?

А самому попробовать и поделиться опытом слабо ?
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Главный модератор
Ответов: 2928
Рейтинг: 385
#3: 2020-06-07 12:40:05 ЛС | профиль | цитата
Tad писал(а):
А самому попробовать

Tad, очевидно же, что germes5558, новичёк в программировании и не знает что такое KernelBase.dll, а поискать информацию в инете не удосужился и сразу стал писать здесь. Он не первый и не последний, кто думает что "утаптывание" всего кода программы в один модуль - это правильно. Ему ещё предстоит открыть для себя понятия backend и frontend в программировании.

germes5558, возможно, что при переносе программы на другой компьютер Вы "потеряли" некоторые библиотеки от которых зависит приложение, но это точно не KernelBase.dll, а что-то другое. Не посмотрев на схему, невозможно определить какую именно библиотеку Вы не перенесли. Можно только предположить, что это одна из DLL, которые используются элементами пакета Windows. Их количество можно пересчитать по пальцам. Поэтому, можно провести простой эксперимент: копировать все DLL файлы из папки \Hiasm в папку программы на другом компе и проверить работоспособность.

Редактировалось 1 раз(а), последний 2020-06-07 12:40:37
карма: 7
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 83
Рейтинг: 0
#4: 2020-06-07 15:37:16 ЛС | профиль | цитата
Nic, Да я новичок и мне предстоит многому научиться и hiasm это старт для меня.

Я перекинул уже все dll в папку с прогой и с hiasm и с windows) - не помогло
Потом я путем удаления и перекомпиляции программы понял что проблема в MFplayer - без него программа запускается, но теряет свое предназночение(

Ребята помогите пожалуйста, понять в чем дело...

Вот собрал схему минимальную (она на сервере так же не работает)

Make(delphi)
ver(4.05 build 186)
Add(MainForm,6094751,574,175)
{
Width=607
Height=530
KeyPreview=1
Caption="Prototip"
BorderStyle=1
ClientSize=0
Position=1
Point(Width)
Point(onClose)
}
Add(MFPlayer,12249359,700,245)
{
link(Handle,3022591:Handle,[(706,209)(713,209)])
}
Add(Image,3022591,700,140)
{
Left=15
Top=5
Width=575
Height=395
Point(Handle)
}
Add(Button,4410354,581,245)
{
Left=20
Top=425
Width=130
Height=60
Font=[MS Sans Serif,10,1,255,1]
Caption="Кнопка 1"
link(onClick,1431810:doExecute,[])
}
Add(ODialog,1431810,644,245)
{
link(onExecute,12249359:Play,[])
}

Само дополнение + библиотека
https://drive.google.com/file/d/12EL1832jk0idw-eejVGtywJXk_oS1neS/view?usp=sharing
карма: 0

0
Главный модератор
Ответов: 2928
Рейтинг: 385
#5: 2020-06-07 16:14:53 ЛС | профиль | цитата
Краткая инструкция.pdf писал(а):
Пока реализовано через DirectShow, можно поставить потку и если кодеки установлены должно проигрывать

Проверьте установку кодеков на сервере.
карма: 7
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 83
Рейтинг: 0
#6: 2020-06-07 17:49:20 ЛС | профиль | цитата
Кодеки есть, компонент media fundation так же установлен. Работать все равно отказывается
карма: 0

0
Главный модератор
Ответов: 2928
Рейтинг: 385
#7: 2020-06-07 18:36:19 ЛС | профиль | цитата
germes5558 писал(а):
Работать все равно отказывается

Да, есть такое дело. Возможно, что библиотека не совместима с серверной версией Windows или ещё что-то надо доустановить на сервер.
карма: 7
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 83
Рейтинг: 0
#8: 2020-06-07 22:25:43 ЛС | профиль | цитата
День "занимаюсь любовью" с этой проблемой и ничего не выходит... Может есть способ узнать какой именно библиотеки/файла не хватает программе? Я имею введу как то просмотреть цепочку загрузки приложения и на каком этапе вылетает ошибка.
карма: 0

0
Ответов: 1254
Рейтинг: 28
#9: 2020-06-07 22:46:50 ЛС | профиль | цитата
germes5558 писал(а):
просмотреть цепочку загрузки приложения и на каком этапе вылетает ошибка



запустить твою схему на сервере через анимационную отладку в hiasm, там увидишь где именно ошибку выдаст на каком компоненте, потом в компоненте ставить сообщения _debug('номер строчки в коде'); ну и так выйдешь именно на ту строчку кода примерно где ошибка вылазит и там уже искать выход из ситуации
карма: 2

0
Ответов: 1061
Рейтинг: 22
#10: 2020-06-07 22:55:34 ЛС | профиль | цитата
Rysik писал(а):
через анимационную отладку в hiasm

Ого и правда есть, первый раз вижу, сколько хиасм знаю ни разу не пользовался)
карма: 0

0
Ответов: 83
Рейтинг: 0
#11: 2020-06-07 23:43:33 ЛС | профиль | цитата
Какой компонент вызывает ошибку я нашел.
Это оно? Мне нужно теперь открыть файл компонента hiMFPlayer и вписывать _debug('номер строчки в коде');? Или я что то не верно понял?
Подготовка к сборке проекта...
Генерация кода целевого языка
Компоновка проекта...
Command line: dcc32.exe "C:\Program Files (x86)\HiAsm\Elements\delphi\code\Project1.dpr" "-U\Users\Администратор\Projects\." -Q
Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation

C:\Program Files (x86)\HiAsm\Elements\delphi\code\WinLayout.pas(159) Warning: Variable 'd' might not have been initialized

C:\Program Files (x86)\HiAsm\Elements\delphi\code\WinLayout.pas(176) Warning: Variable 'd' might not have been initialized

C:\Program Files (x86)\HiAsm\Elements\delphi\code\WinLayout.pas(40) Hint: Private symbol '_onObjDestroy' declared but never used

C:\Program Files (x86)\HiAsm\Elements\delphi\code\MediaInfo.pas(158) Hint: Variable 'imfa' is declared but never used in 'TMediaInfo.IsAudioRead'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\MediaInfo.pas(365) Hint: Variable 'imfa' is declared but never used in 'TMediaInfo.GetAudioInfo'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\DSPlaySound.pas(92) Hint: Variable 'bf' is declared but never used in 'TDSPlaySound.Init'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\DSPlaySound.pas(93) Hint: Variable 'hr' is declared but never used in 'TDSPlaySound.Init'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\DSPlaySound.pas(205) Hint: Variable 'S2' is declared but never used in 'SCheck'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(416) Hint: Variable 'count' is declared but never used in 'THIMFPlayer.SetStreamSelection'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(417) Hint: Variable 'bVid' is declared but never used in 'THIMFPlayer.SetStreamSelection'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(417) Hint: Variable 'bAud' is declared but never used in 'THIMFPlayer.SetStreamSelection'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(507) Warning: Comparing signed and unsigned types - widened both operands

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(551) Warning: Variable 'pfProtected' might not have been initialized

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(561) Warning: Return value of function 'THIMFPlayer.GetState' might be undefined

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(966) Hint: Variable 'info' is declared but never used in 'THIMFPlayer._work_doMediaInfo'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(967) Hint: Variable 'vai' is declared but never used in 'THIMFPlayer._work_doMediaInfo'

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(1013) Warning: Constant 0 converted to NIL

C:\Program Files (x86)\HiAsm\Elements\delphi\code\hiMFPlayer.pas(124) Hint: Private symbol 'fHandle' declared but never used
30138 lines, 0.08 seconds, 64792 bytes code, 2713 bytes data.
Сборка завершена.



Дополню: Я думаю тут отладка не поможет, так как ошибка вылетает ПОСЛЕ загрузки программы(((

Редактировалось 3 раз(а), последний 2020-06-08 00:43:44
карма: 0

0
Главный модератор
Ответов: 2928
Рейтинг: 385
#12: 2020-06-08 01:29:49 ЛС | профиль | цитата
germes5558 писал(а):
Может есть способ узнать какой именно библиотеки/файла не хватает программе?

Полезная программа для разработчика, если открыть в ней библиотеку, то можно узнать много интересного, в том числе и какие зависимости от других библиотек она имеет:


P.S. У каждого элемента есть автор. Он указан в ini-файле в секции [About]. Можно попытаться задавать вопросы непосредственно автору, если конечно он ещё посещает данный форум. Тем более в данном случае виновником является нештатный элемент пакета.
карма: 7
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 83
Рейтинг: 0
#13: 2020-06-08 10:27:16 ЛС | профиль | цитата
Короче нашел программу показывающую зависимости приложений, pe explorer x64. Перенес все библиотеки со своего компа на сервер в папку с программой, проблему это не решило. Ребята, что еще можно придумать? Автору я написал


карма: 0

0
Главный модератор
Ответов: 2928
Рейтинг: 385
#14: 2020-06-08 11:20:26 ЛС | профиль | цитата
  Если победить в себе идиосинкразию к HiAsm.NET, то можно собирать несложные приложения Windows Forms в пакете Core:

  Пример использования элемента HCWMPlayer в проекте Windows Forms пакета Core:

Редактировалось 4 раз(а), последний 2020-06-08 12:24:29
карма: 7
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
файлы: 1WMPlayer_demo.zip [117.5KB] [33]
Ответов: 818
Рейтинг: 96
#15: 2020-06-08 15:01:41 ЛС | профиль | цитата
всё это похоже на проблему с Windows Media Feature Pack, если его не удачно выпилить из винды то не один браузер не будет способен проиграть mp4

http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5
протестируй на сервер в браузере

может поможет
https://www.microsoft.com/en-us/download/details.aspx?id=40837

как альтернативный вариант есть ffplay из пакета ffmpeg
https://stackoverflow.com/questions/31465630/ffplay-successfully-moved-inside-my-winform-how-to-set-it-borderless

Редактировалось 1 раз(а), последний 2020-06-08 15:10:03
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)