Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » подключиться к pipe серверу

Страниц (5): « 1 [2] 3 4 5 »
 

11. Kibor - 30 Апреля, 2019 - 21:27:23 - перейти к сообщению
Правильный путь
\\.\pipe\MyPipe, а не копирование с разных примеров..
В С++ обратный слеш является символом экранирования. И для того что бы его напечатать надо его самого экранировать.
Исходя из этого код c++
CODE:
\\\\.\\pipe\\MyPipe

является на самом деле той строкой, которую я указал вверху красной.

Это в с++ выведет один слеш
CODE:
MessageBox ("\\");


А это выведет \\.\pipe\MyPipe
CODE:
MessageBox ("\\\\.\\pipe\\MyPipe");


В кибор этот символ не является экранирующим и его не надо экранировать.

Короче пишите правильный путь и Кибор будет уметь..
12. AdryV - 01 Мая, 2019 - 00:10:08 - перейти к сообщению
работает надо было кибор перезапускать или вызывать закрытие соединения через CloseHandle(k);
всем спасибо Подмигивание
13. 007wan - 01 Мая, 2019 - 02:17:00 - перейти к сообщению
А зачем нужен этот сервер pipe?
14. AdryV - 01 Мая, 2019 - 02:28:11 - перейти к сообщению
чет я голову сломал
CODE:
external(INT, "CreateFile", "CreateFileA", "kernel32.dll");
external(INT, "CloseHandle", "CloseHandle", "kernel32.dll");
external(INT, "WriteFile", "WriteFile", "kernel32.dll");
//
#define GENERIC_READ -2147483648
#define GENERIC_WRITE 1073741824
#define OPEN_EXISTING 3
#define NULL 0
#define INVALID_HANDLE_VALUE -1
//
int cbWrite=0;
string lpszPipeName="\\.\pipe\MyPipe";
int hNamedPipe;
char szBuf[256];

loop()
{
hNamedPipe=CreateFile(lpszPipeName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(hNamedPipe!=INVALID_HANDLE_VALUE)
{
strcpy(#szBuf[0], "1;24049084;4;5000");
if(WriteFile(hNamedPipe, format(#szBuf[0]), size(#szBuf[0])+1, #cbWrite, NULL)!=0)
{
messagebox(cbWrite);
}
}else messagebox("Ошибка подключения | "+format(hNamedPipe));
CloseHandle(hNamedPipe);
sleep(500);
}

эммм почему ругается на #cbWrite?
CODE:
BOOL WriteFile(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);

пробовал передавать не указателем, со значением 0 на сервер данные пришли но кибор потом крашнулся.
скрин(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
 007wan пишет:
А зачем нужен этот сервер pipe?

dll в игре будет сервером
кибор будет клиентом который будет передавать dll что хочет а dll будет отсылать/записывать в игру данные
еще не знаю что получится по скорости обмена... но охото проверить.
15. Kibor - 01 Мая, 2019 - 02:33:58 - перейти к сообщению
WriteFile(hNamedPipe, format(#szBuf[0]), size(#szBuf[0])+1, address(#cbWrite), NULL);
16. AdryV - 01 Мая, 2019 - 02:37:01 - перейти к сообщению
все супер Подмигивание спасибо буду далее изучать Подмигивание но кажись на этом все)
17. 007wan - 10 Ноября, 2019 - 11:26:21 - перейти к сообщению
Можно пример конкретный, без ошибок?
Мне не нужен СЕРВЕР, потому что потребует интернет, а нужно как бы локально на компьюетер соединял(передавал текст между программами).
18. Zireael - 10 Ноября, 2019 - 11:39:48 - перейти к сообщению
 Цитата:
не нужен СЕРВЕР, потому что потребует интернет

Интернет не нужен.
19. 007wan - 10 Ноября, 2019 - 11:53:55 - перейти к сообщению
А пример можно, пожалуйста, без ошибок ?
20. Zireael - 10 Ноября, 2019 - 15:51:17 - перейти к сообщению
 Цитата:
А пример можно

Вначале темы пример на c++. А для передачи данных между кибор есть writebuffer.

Powered by ExBB FM 1.0 Final