AkulaBig
|
Posted: Thu May 29, 2025 13:05 Post subject: |
|
|
Loopback wrote: | а так, например, нельзя |
Это конечно понятно. Но тут даже более интересная фича. %COMMANDER_PATH% где-то можно и без кавычек использовать, а где-то нельзя. Я имею ввиду не Autorun. В Autorun как-раз можно без кавычек. Проверено. Но от греха подальше закавычил все.
Loopback wrote: | Да, а вот тут действительно есть баг в DllCall с обработкой полного пути dll. |
Ой, хорошо что это не мой косяк. А то я уже волноваться начал
Loopback wrote: | а пока можно решить |
Спасибо, попробую. Кстати, полезное дело я сделал. Помимо выявленного бага еще попутно одну проблемку решил из взаимодействия MI в разных плагинах. Хинты через Autorun отлично подхватывают русский язык. А вот у TCMediaInfo какая-то проблема возникла. Для ее решения пришлось в Autorun вынести подключение языка из функции хинтов в основную. Объяснить трудно. Вот скрины:
Code: | <source name="G_OverallBitRate" field="OverallBitRate/String"/> |
Первый скрин просмотр из MI через TCMI. Второй скрин с подключение языка в Autorun:
Code: | # Установить язык названий параметров
# Set language of parameters
Switch AUTORUN_TCLANG
Case 'RUS'
# Имя DLL в зависимости от разрядности TC
# DLL name depending on discharge TC
Static sLib = "MediaInfo" & (auX64 ? "_x64" : "") & ".dll"
# Static sLib = util_MI
# Загрузить DLL
# Open DLL
Static hLib = DllCall("LoadLibrary", _
"wstr", COMMANDER_PATH & "\Utilities\MediaInfo\" & sLib, _
"ptr")
If hLib = 0 Then
Return "Error LoadLibrary " & sLib
EndIf
# Получить дескриптор DLL
# Get DLL descriptor
Local hMI = DllCall(sLib & "\MediaInfo_New", "ptr")
If hMI = 0 Then
Return "MediaInfo_New returned 0"
Endif
Local lng_MI = _
"file://" & COMMANDER_PATH & "\Utilities\MediaInfo\ru.csv"
DllCall(sLib & "\MediaInfo_Option", _
"ptr", hMI, "wstr", "Language", "wstr", lng_MI, _
"wstr")
# Удалить дескриптор DLL
# Delete DLL descriptor
DllCall(sLib & "\MediaInfo_Delete", "ptr", hMI)
EndSwitch |
Я не думаю, что это глюк. |
|