Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2017, 00:53   #1
art2me
Новичок
Джуниор
 
Регистрация: 09.05.2017
Сообщений: 2
По умолчанию Native messaging Chrome

Доброе время суток!
Ковыряю возможность обмена сообщениями с браузером из аддона, что бы парсить данные и складывать в БД. Нарыл пример и... споткнулся.
Код HTML:
void host::log(String s) {
	FILE *file = fopen("log.bin", "a+b");
	if (!file)
		return;
	fseek(file, 0L, SEEK_END);
	int size = s.Length();
	char *log_msg = new char[size];
	strcpy(log_msg, AnsiString(s.c_str()).c_str());
	fwrite(log_msg, size, 1, file);
	delete log_msg;
	log_msg = NULL;
	fclose(file);
	file = NULL;
}
void host::Listen() {
	String income;
	int msgLen = 0;
	wchar_t tmp[50];
        Fstdin = new THandleStream(STD_INPUT_HANDLE);
	Fstdout = new THandleStream(STD_OUTPUT_HANDLE);
	while (1) {
		msgLen = Fstdin->Read(tmp, 50);
		if (msgLen > 0) {
                        income = tmp;
			tmp[msgLen] = '\0';
			Fstdout->Write(tmp, msgLen);
			data->SaveData(income); //отправка в базу данных
                        log(income); //отправка в файл
			if (msgLen > 30)
				break;
		}
	}
        delete ...
}
...
все нормально работает с расширением для хрома из примера, но в базу данных не могу положить, т.к.
Код HTML:
income = tmp;
работает только в консольном режиме (на консоли ввожу латинские символы, цифры и они же попадают в БД), но браузер запускает мое приложение в скрытом виде и пихает в стандартный вход что-то с чем-то. В общем в БД попадают пустые строки. Так же делал вывод и в файл. Тоже пустые строки ложатся в файл (как в бинарный так и в текстовый). Заранее спасибо. Пока дебажил сделал работу с файлом такую разовую. Да и вообще я в программировании новичок, не пинайте.
P.S.: как и в примере ковырял с TJASONValue, TEncode... в общем сейчас в консоле ввожу латинские буквы, а в БД, как и в дебаге отображаются иероглифы. До попыток TEncode.. все было норм, хотя может и глюк IDE. За любую помощь благодарен. Если нужно вот архив с прогой (Embarcadero® C++Builder 10 Seattle)

Последний раз редактировалось art2me; 09.05.2017 в 12:15. Причина: уточнение
art2me вне форума Ответить с цитированием
Старый 09.05.2017, 13:06   #2
art2me
Новичок
Джуниор
 
Регистрация: 09.05.2017
Сообщений: 2
По умолчанию

Ну, собственно, всем спасибо за просмотры :-).
Проблема решилась следующим образом. Добрый человек выложил ответ.
В своем while (1) {...} добавил
Код:
                ...
                String mess;
		mess = msg.c_str();
		data->SaveData(mess);
                .....
И все ))). Но в принципе я понял где споктнулся, и нужно было ЧИТАТЬ сначала инструкцию, про первый байт и все такое.
art2me вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UDP messaging f.hump C/C++ Сетевое программирование 11 14.08.2012 18:53
native api Bat{CMD}_Men Win Api 7 07.04.2011 11:57
visual c++ native приложение Flippp Visual C++ 4 12.09.2010 13:14
Native API Д'якон Win Api 3 24.11.2008 22:22
Native API student_63 Win Api 1 31.03.2008 19:45