|
|
  |
Пожелания, Предложения по развитию сюда |
|
|
DarkMaster |
10.6.2016, 0:04
|
          
Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29676
Пользователь №: 11.279

|
Цитата ресервед - 4 байта. указатель на ресултструкт - 4 байта. указатель на массив - 4 байта. пилот приводит этот адрес к чему либо,что бы понять,что в ресерведе. мы передаем всего лишь адрес, а что там и какого размера не важно. ты предлагаешь при передаче массива блокировать результструкт и подменять его адресом массива/другой структурой? Т.е. работает или то или то? Против. Работать должны оба. А если мне просто нужно вернуть результат в массив, но при этом использовать старый способ? У меня на данный момент все плагины так работают. Т.е. все порушится к чертям. Цитата зачем передавать размеры массива? из плагина узнаем. по крайней мере в дельфи плагине точно. В c++ ты размер массива не узнаешь даже в пределах плагина, если он был создан в одной функции, а размер ты запрашиваешь в другой. Там это просто голый указатель без какой-либо доп информации. Ну точнее она есть, но в пределах функции и в явном виде не является частью массива. Код void mysize(char a[]){ cout << sizeOf(a) << endl; // Напишет 4, т.к. сообщит просто размер указателя. Ну или 8, если x64 адресация. }
void main (){ char arr [10]; mysize(arr); system ("pause"); }
Сообщение отредактировал DarkMaster - 10.6.2016, 0:05
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Cockney |
11.6.2016, 22:30
|
       
Master
Сообщений: 1.404
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 22549
Пользователь №: 16.156

|
А почему они должны перестать работать-то? Результат есть результат. Зачем в него пихать то, что не нужно? Если ошибка - результат один, нет ошибки - результат два. А то как то бредово получается. Тут я вот помещу одну часть, а вот тут другую, ну а третью я вообще туда положу. И получается какой-то хлам. Ошибки отсюда брать, результат оттуда. В чем прикол? Цитата Тут бы это как раз прозрачно решилось, причем в стиле пилотовских функций типа финдов, когда сама функция возвращает успешность результата, а полезные данные падают в массив. Ну тут как бы решилось так, что если нет данных в массиве, или какой либо элемент корявый, то функция не отработала и т.д. В пилоте такой подход может и нормально выглядит, но в плагинах это лишнее, имхо. И если уж такое дело, настоятельно рекомендую кнайту подумать над возможностью работы пилота из плагинов. Полный доступ ко всему. Вызов функций, регистрация переменных. Апи короче. А то мало ли еще какой способ со временем появится. А то десяток протоколов многовато...
|
|
|
|
DarkMaster |
11.6.2016, 23:43
|
          
Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29676
Пользователь №: 11.279

|
Цитата Ошибки отсюда брать, результат оттуда. В чем прикол?
А каким образом мне валидировать значения ошибок? Писать километровые псеводоуникальные ключи? Я делаю запрос на веб, мне может придти любой ответ в т.ч. ошибка сервера со словом еррор, может придти цифра. Как отличить ответ от ошибки? Только резервируя несколько строк массива с результатом именно под ошибки. И вот это натуральный хлам. Цитата А то десяток протоколов многовато... Да не нужен этот десяток протоколов. Нужно просто упростить передачу указателя на массив и размеров. Сделать допустимым вызов: set $result %a %b %c plugin.func () пилот создаст массив структур с указателями и размерами массива, плагин соответственно подхватит. Вообще если уж по большому счету, то все это можно и сейчас делать. Вопрос лишь в том, что запись другая и ты считаешь ее костыльной. Если в варианте с плюсами я еще соглашусь, т.к. надо выдергивать аж три параметра, то если делифик нормально относится к указателю и по нему считает размеры, то в чем проблема? В апи я не верю по многим причинам, хотя и не имею ничего против, лишь бы не в ущерб развитию других вещей.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|