| 
		
	
	
	
	
	   Вопросы по разработке. | 
	 
	    
	  | 
	           | 
	 
   
	 
  
 
	
		| DarkMaster | 
		
			
			
				   27.5.2016, 13:29
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			Cockney, ты использовал новый интерфейс плагинов с передачей результата по указателю? У меня пустоту возвращает хоть убей. Причем структуру создаю, все назначаю, старый вариант по всей цепочке указателей значение считывает нормально: Код      sprintf_s(ParamStruct->Result,         "%u     " "%u     " "%s", &ResultStruct.RArray, ParamStruct->pResultStruct, ParamStruct->pResultStruct->RArray          ); Но как только я ствалю: Код ResultStruct.used = true; пустота приходит. Сообщение отредактировал DarkMaster - 27.5.2016, 20:03 
			
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
 
	
		   | 
		   | 
	 
 
	Ответов	 
	
		| DarkMaster | 
		
			
			
				   27.5.2016, 18:43
			 
			
			
		 | 
	 
	
		
        	
  
        		           
  
        		Модератор UOPilot 
        		Сообщений: 9.766 
        		Регистрация: 2.12.2008         		Группа: Супермодераторы Наличность: 30011         		
        		Пользователь №: 11.279
  
        		 
        	 
        	   
        | 
       
			
			С адресами я тоже тупил. Точнее я думал структуру создаст пилот, а мне ее надо только принять, соответственно писал сначала в молоко и понять ничего не мог. Но сейчас вроде как все нормально сделано... Код include <stdexcept>
  using namespace std;
  struct tInitStruct {     long unsigned FunctionCount;     const char** FunctionNames; };
 
  struct tResultStruct // Заполняется плагином. Память под строку выделяется и освобождается плагином. {     bool used;   // Используется ли эта структура при возврате значения. = false     unsigned int RLength;  // Размер данных.     char *RArray;     // Указатель на возвращаемую строку.     unsigned int Reserved1;     unsigned int Reserved2;     unsigned __int64 Reserved3;     unsigned __int64 Reserved4; }; tResultStruct ResultStruct;
 
 
  struct tParamStruct {     int unsigned* WindowHandle; // Handle of workWindow     int unsigned* WindowPID; // pid of process of workWindow     tResultStruct *pResultStruct;     char* ParamString; // string of parameters with substituted variables     char* ParamStringOrig; // original string of parameters     char Result[32767]; // array for returned values };
 
  tParamStruct *ParamStruct;       // init by UOPilot static tInitStruct InitStruct;   // init by plugin, free on unload
 
  extern "C" __declspec(dllexport) unsigned long * __stdcall InitPlugin(int App, int Scr, double& Version) {     // Количество полезных экспортируемых функций для сообщения пилоту     // в зависимости от версии протокола обмена между пилотом и плагином.     // Это НЕ версия самого пилота, а версия протокола обмена между пилотом и длл.     if (Version >= 2.18)     {         InitStruct.FunctionCount = 2;         InitStruct.FunctionNames = new const char*[InitStruct.FunctionCount];         InitStruct.FunctionNames[0] = "Function1";         InitStruct.FunctionNames[1] = "Function2";     }     else     {         InitStruct.FunctionCount = 0; // Выгурзит длл, т.к. функций для экспорта нет.     }     return (&InitStruct.FunctionCount); }
 
  static char message[] = "123\0"; // Образец функции возвращающей строку. extern "C" __declspec(dllexport) void __stdcall Function2(tParamStruct *ParamStruct) {         // Так работает по старой схеме:     ResultStruct.RArray = message;     ResultStruct.RLength = 4;     ParamStruct->pResultStruct = &ResultStruct;     sprintf_s(ParamStruct->Result,              "%u     " "%u     " "%s", &ResultStruct.RArray, ParamStruct->pResultStruct, ParamStruct->pResultStruct->RArray              );
          // Вот так пустоту возвращает:     ResultStruct.used = true;     ResultStruct.RArray = message;     ResultStruct.RLength = 4;     ParamStruct->pResultStruct = &ResultStruct; }
 
  Т.е. у тебя на практике реально новым методом данные возвращались? Сообщение отредактировал DarkMaster - 27.5.2016, 23:26 
			
  Прикрепленные файлы
  
 socket.7z ( 13,13 килобайт )
Кол-во скачиваний: 1893
  
 msvcp120d.7z ( 150,41 килобайт )
Кол-во скачиваний: 1860
  
 msvcr120d.7z ( 446,96 килобайт )
Кол-во скачиваний: 1637
  
 socket2.7z ( 13,14 килобайт )
Кол-во скачиваний: 2208
  
 socket3.7z ( 13,35 килобайт )
Кол-во скачиваний: 1661
  
 socket4.7z ( 13,35 килобайт )
Кол-во скачиваний: 1923
  
 socket5.7z ( 13,37 килобайт )
Кол-во скачиваний: 1891 
			
  -------------------- 
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____ Контакт актуален, подпись актуальна. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
 
	Сообщений в этой теме 
	   DarkMaster   Вопросы по разработке.   27.5.2016, 13:29    Cockney   Игрался. Было раз такое, но это я с адресами тупил...   27.5.2016, 18:30    Cockney   Да.
А если так ? я не знаю, есть ли разница, но.....   27.5.2016, 18:51    DarkMaster   reserved был заменен на tResultStruct *pResultStru...   27.5.2016, 19:03    Cockney   Он корректный, да, ты же знаешь, что он там находи...   27.5.2016, 19:09    DarkMaster   дык адрес это и есть unsigned int. Он хранится как...   27.5.2016, 19:19    Cockney   Да.
Ты пробовал, как я писал?   27.5.2016, 19:26    DarkMaster   Да, сейчас как раз сижу. Так же попробовал сделать...   27.5.2016, 19:34    DarkMaster   Дай работающий пример. Чет у меня такое чувство, ч...   27.5.2016, 19:47    Cockney   чуть позже будет.   27.5.2016, 20:09    DarkMaster   кстати на:
ResultStruct.used = true;
реакция идет ...   27.5.2016, 20:36    Cockney   а почему он должен ее не видеть?   27.5.2016, 20:56    Cockney   tResultStruct = packed record // Заполняется плаги...   27.5.2016, 21:11    DarkMaster   Потому что не видит результат, как следствие у нас...   27.5.2016, 21:25    TemTriss   Доброго времени суток, а не кто случаем не сталкив...   8.6.2016, 18:03     Aimed   
Доброго времени суток, а не кто случаем не сталки...   8.6.2016, 22:02    DarkMaster   Это не решается плагином.   8.6.2016, 18:11     TemTriss   
Это не решается плагином.
Может подскажите а ест...   8.6.2016, 18:19    Cockney   Нет. Нету.   8.6.2016, 18:25    DarkMaster   И? А как ты пилот заставишь потом понимать эти шиф...   8.6.2016, 23:23     Aimed   
И? А как ты пилот заставишь потом понимать эти ши...   9.6.2016, 8:27    Cockney   Что мешает один раз кому-то купить и раздать всем?...   9.6.2016, 9:44     TemTriss   
А я предлагал дать возможность дергать функции пи...   16.6.2016, 12:38    DarkMaster   К тому же подобное шифрование никак не скрывает ко...   9.6.2016, 10:13    Cockney   да   16.6.2016, 13:15    WKnight   В планы реализации входит.
Туда много чего входит...   16.6.2016, 14:49     Cockney   
В планы реализации входит.
Что именно входит? ...   16.6.2016, 18:09    WKnight   Вообще, всё из перечисленного, но подозреваю, что ...   16.6.2016, 22:32    DarkMaster   
О.о   17.6.2016, 9:44     Cockney   
О.о
Да-да,не подведи,вся надежда на тебя)   17.6.2016, 15:26    DarkMaster   Мне бы еще понять причем тут я и, что от меня хотя...   17.6.2016, 17:58    Cockney   Кнайта пинать.   18.6.2016, 15:35    WKnight   :lol:   18.6.2016, 16:28    Cockney   Скрипт :
set logging clear
set logging mode fullti...   11.7.2016, 13:07    Cockney   в 2.35 тоже самое.
Где брать 2.33 и другие стар...   12.7.2016, 22:10    DarkMaster   вообще на сайте они есть. ну и я залить могу.   13.7.2016, 3:11    Cockney   в старых версиях нет. упоминание есть, а скачать н...   13.7.2016, 11:03    DarkMaster   Все прекрасно качается с сайта. Обновил репозитори...   13.7.2016, 11:19    Cockney   ссылку сайта тогда можно?   13.7.2016, 11:21    DarkMaster   http://uopilot.uokit.com/
тыкаем old version тыкам...   13.7.2016, 11:23    Cockney   33 недоступен. как и многие другие   13.7.2016, 11:26    DarkMaster   Хм... Странно.
https://redmine.uokit.com/projects/...   13.7.2016, 11:32    Cockney   Чего? написать репорт?   13.7.2016, 11:33    DarkMaster   Чиркани =) Ну или я чиркану...   13.7.2016, 11:37    DarkMaster   версии все нужные в полезных советах есть? могу ещ...   13.7.2016, 13:56    Cockney   В советах только ссылка на самую новую. Истории не...   13.7.2016, 14:27    WKnight   Добавил несколько ссылок на старые версии на хомпе...   13.7.2016, 15:07    Cockney   в чем прикол? и где теперь его брать?   13.7.2016, 16:10    DarkMaster   скорее всего проблема из-за гугла с его паническим...   13.7.2016, 16:13     Kortez   Приветствую, есть некоторые вопросы по плагинам:
...   16.9.2017, 21:12    Cockney   Массив вроде можно передать как %a[1]   16.9.2017, 21:21     Kortez   
Массив вроде можно передать как %a[1]
так можно...   23.9.2017, 17:59    DarkMaster   
У луа есть собственные требования к функциям для ...   17.9.2017, 6:35    cirus   
--lua
local w = findwindow("BlueStacks...   23.9.2017, 19:07    DarkMaster   
Главное чтобы на костре не сожгли:
get (...   23.9.2017, 22:16    WKnight   build 12
Починил 'get windowpos' в Lua. Те...   12.10.2017, 13:56 
	
 
	1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0) 
	Пользователей: 0  
 
        				  
  | 
 |