Подскажите, пожалуйста, как правильно подключать и использовать сторонние библиотеки.
При попытке загрузить библиотеку:
dotnet.loadAssembly "C:\\Program Files\\Autodesk\\3ds Max 2011\\Scripts\\Importer\\K4os.Compression.LZ4.dll"
получаю следующую ошибку:
-- Error occurred during fileIn in <File:C:\Program Files\Autodesk\3ds Max 2011\Scripts\Importer\Importer.ms>
>> MAXScript FileIn Exception: -- Runtime error: dotNet runtime exception: Invalid directory on URL. <<
Как корректно подключить стороннюю библиотеку декодирования LZ4?
И, самое главное, как выполнить строку декодирования (взято из опенсорса программы, написанной на C#):
LZ4Codec.Decode(input, output);
Буду благодарен, если подскажите, как это сделать на примере.
Также буду весьма благодарен, если поделитесь ссылками на темы (желательно на русском), где можно об этом всем почитать.
PS: Может быть где-нибудь уже существует готовая функция декодирования LZ4 на максскрипте?
Самое банальное, что стоит проверить: убедиться, что путь к файлу dll правильный, что доступ к файлу есть, и что разрядность файла dll и 3ds Max совпадает (т.е. и то и другое 64-бит)
LastJediубедиться, что путь к файлу dll правильный
Проверил. Путь верный.
LastJediчто доступ к файлу есть
Как понять, что доступ к файлу есть? Как это проверить?
LastJediчто разрядность файла dll и 3ds Max совпадает (т.е. и то и другое 64-бит)
Проверил. 3ds Max 2011 64-битный, а вот библиотека, как я понял 32-битная (в заголовке PE..L, что, как я нагуглил, означает 32-битную разрядность). Т.е. запустить 32-битную библиотеку на 64-битном Максе не выйдет?
Ребята, я извиняюсь, но не могли бы вы написать пример загрузки какой-нибудь стандартной виндовской 64-битной библиотеки?
Я уже совсем запутался. Сколько не пытался, постоянно ошибки.
Я ранее никогда не сталкивался с загрузкой библиотек в максскрипте, поэтому даже не понимаю, правильно ли я вообще это пытаюсь сделать.
Может где-нибудь есть об этом хорошие руководства на русском?
Если библиотека правильная то [ICODE]dotnet.loadAssembly[/ICODE] вернёт [ICODE]dotNetObject:System.Reflection.RuntimeAssembly[/ICODE] что говорит о том что библиотека загрузилась. Если ошибка, то наверно ничего не сделать, кроме как искать подходящую библиотеку. А если библиотека загрузилась, то нужно смотреть документацию, в каком пространстве имён находится нужный класс, чтобы потом путь к классу передать в [ICODE]dotnetclass[/ICODE] или [ICODE]dotnetobject[/ICODE].
Стандартные .net библиотеки уже загружены. Убедиться в этом можно выполнив например [ICODE]dotnetclass "System.String"[/ICODE] вернёт класс, а если класса нет, то [ICODE]undefined[/ICODE].
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
Почемучкин
Подскажите, пожалуйста, как правильно подключать и использовать сторонние библиотеки.
При попытке загрузить библиотеку:
dotnet.loadAssembly "C:\\Program Files\\Autodesk\\3ds Max 2011\\Scripts\\Importer\\K4os.Compression.LZ4.dll"
получаю следующую ошибку:
-- Error occurred during fileIn in <File:C:\Program Files\Autodesk\3ds Max 2011\Scripts\Importer\Importer.ms>
>> MAXScript FileIn Exception: -- Runtime error: dotNet runtime exception: Invalid directory on URL. <<
Как корректно подключить стороннюю библиотеку декодирования LZ4?
И, самое главное, как выполнить строку декодирования (взято из опенсорса программы, написанной на C#):
LZ4Codec.Decode(input, output);
Буду благодарен, если подскажите, как это сделать на примере.
Также буду весьма благодарен, если поделитесь ссылками на темы (желательно на русском), где можно об этом всем почитать.
PS: Может быть где-нибудь уже существует готовая функция декодирования LZ4 на максскрипте?
Спасибо за помощь.
LastJedi
Почемучкин
Как понять, что доступ к файлу есть? Как это проверить?
Проверил. 3ds Max 2011 64-битный, а вот библиотека, как я понял 32-битная (в заголовке PE..L, что, как я нагуглил, означает 32-битную разрядность). Т.е. запустить 32-битную библиотеку на 64-битном Максе не выйдет?
LastJedi
Почемучкин
А как в максскрипте выполнить строку декодирования (взято из опенсорса программы, написанной на C#):
LZ4Codec.Decode(input, output);
Что-то вроде этого или как:
fn LZ4Decode bs input output =
(
ft = dotnetobject "K4os.Compression.LZ4.LZ4Codec.Decode" input output
ft.packedvalue
)
Владислав Бодюл
Почемучкин
Я уже совсем запутался. Сколько не пытался, постоянно ошибки.
Я ранее никогда не сталкивался с загрузкой библиотек в максскрипте, поэтому даже не понимаю, правильно ли я вообще это пытаюсь сделать.
Может где-нибудь есть об этом хорошие руководства на русском?
Владислав Бодюл
Стандартные .net библиотеки уже загружены. Убедиться в этом можно выполнив например [ICODE]dotnetclass "System.String"[/ICODE] вернёт класс, а если класса нет, то [ICODE]undefined[/ICODE].