есть переменная String^ tmp[2] равная "A0" (строка с 2 символами). Нужно из нее получить unsigned char со значением 0xA0. Ну или 160 в десятичном. Как это сделать на Visual Studio 2005 C++?
электрик, я так понимаю речь идёт о CLR? Попробуйте всю мощь класса Convert для начала, может подберёте то, что нужно. Это моё 1500-е сообщение на Форуме.
на C# я бы так сделал Думаю что и на CLR так же будет. Если вдруг не складывается, то можно сначала перевести в массив char http://support.microsoft.com/kb/311259, после чего воспользоваться функцией из сишной библиотеки
Мешать managed и unmanaged код не есть хорошо. К этому стоит прибегать только в самых экстренных случаях. А массив байт можно привести намного проще. У него же есть строка. Используя класс Encoding (зная кодировку) - можно получить массив байт. Правда, это будут немного другие байты, нежели те, которые ему нужны. Поэтому пусть с классом Convert разбирается.
Не создаю новую тему, т.к. это продолжение истории. Не могли бы вы дать ссылку или прислать пример работы с СОМ-портом под VS 2005 C++? Гугль конечно велик, но описание внятное только по 6-ке. Так чтобы готовый рабочий пример - нету. Так, обрывки. Задача только принимать пакеты длиной 36 байт с одинаковым заголовком. Ну мне достаточно просто прием байта с инициализацией. Прием байта желательно чтобы вызывал некий event, чтобы его можно было обработать. Ну либо приняли 36 байт, а потом event. Но согласен на любое решение. Заранее спасибо большое.
электрик, смотрите, в CLR Вы можете использовать 2 способа работы с COM-портом. Если у Вас есть какие-нибудь психо-сексуальные отклонения, Вы можете воспользоваться функциями WinAPI (CreateFile, ReadFile и т.п.) для работы с COM-портом. Скорее всего, именно такие примеры Вы и находили в Интернете. Но можете и использовать прелести .NET. Для этого переместите на свою формочку компонент SerialPort. В его свойствах - можете задать всё, что захотите (длину пакета, число стоп-битов, проверку на чётность, скорость и всё, что только возможно задать). Нажимаете на "молнию" и видите 3 события для работы с RS-232. Например, в DataReceived как раз и можете написать обработку приёма нужного Вам пакета. А вообще, по теме, C++, на мой взгляд, для платформы .NET - один из самых неудобных языков. Может быть Вам стоит посмотреть в сторону C#? Сам переходил как раз с Visual C++ [WinForms] на классический .NET под началом C#. Ощущение, как будто пересаживаешься с копейки с пробитым радиатором на Мерседеc S-класса.
У меня задача то разовая. Все, что мне нужно - отреверсинженерить протокол между двух железок и потом успокоиться. Может я зря это затеял и есть готовый софт? У меня железка передает пакет фиксированной длины фиксированного формата нестандартной скоростью (usb-com такую скорость умеет). Софтина же моя раскладывает все это по полочкам, подписывает, некоторые байты раскладывает по битам и подписывает каждый бит. Чтобы наглядно было что в данный момент передается. По мере расшифровки подписывается остальное. Всё Компонент SerialPort уже нашел, спасибо. Сейчас буду надеяться, что в msdn про него есть хоть слово.
Да есть, конечно же. Но там и так все методы интуитивно понятны. Если бы не одно "но", что в среде под Visual C++ .NET постоянно "слетает" суфлёр кода и приходится многие названия и перечисления помнить наизусть.
С теплотой вспоминаю свое студенчество... Бессонные ночи с паяльником и чашкой кофе, страницы кода, раскиданные по столу платы, спешно разводящий плату под 20+ корпусов ИС товарищ... писят прошивок кристаллов за ночь и тыщща версий софта на PC... Халявные семплы от АД... Запах знаний и желание победить )
Pasha, у меня уже давно не студенчество Тут реверсинжиниринг с применением давно забытого и сильно эволюционировавшего инструмента в качестве подручного средства, т.к. найденые мною готовые логгеры и снифферы не позволяют выводить расшифровки на лету. Да, есть у некоторых макросы, но афигенно не функциональные. Приходится писать свой инструмент, который после выполнения своего задания уйдет в /dev/null MSDN как всегда немногословен. Ни одного примера. Ни как инитить, ни в каком месте инитить. Тупо описание и все. Ну чесслово. Хотя бы пример прилепили
Короче сделал все на PIC18 с выводом в терминал в уже "красивом виде" (ручки то помнят BBSные ESC-последовательности ). В тудыть все эти микрософты... Пол часа, C18 и все готово.
это какой-то неправильный у тебя мсдн. у мс`ов всё очень подробно и с пачкой примеров. вот, смотри класс, кстати, вполне работоспособный
msdn тот же самый, только поискать на русском не догадался. А на английском примера не видел, хотя смотрел этот раздел. Спасибо. Хотя цель уже достигнута другим инструментом и топик уже не актуален.