Компиляция программы

321
19 декабря 2016, 19:58

Есть исходник программы управления устройством через USB (микроконтроллер Attiny45).

Сначала пробовал через 6-й С++ Builder, потом через RAD Studio Xe, так поставил Jedi code lib.

Под рад студию он благо нормально встал. НО, первое с чем столкнулся в Rad, это то что он

  • не находит статические библиотеки icsbcb60.lib, JvStdCtrlsC6R.lib, JvCustomC6R.lib, JvSystemC6R.lib, JvCoreC6R.lib (может это косяк версий),
  • но основное это то что он не находит компоненты JvHidControllerClass и JvComponentBase (.hpp) которые по идее должны быть в Jedi.

Вопрос, куда прописывать пути для установки библиотек Jedi, и что делать с теми библиотеками, которых нигде нет?

Answer 1

Можно взглянуть на исходники? И хотелось бы понять с чем связан выбор RAD Studio XE? Если необходимо работать с USB на ПК я бы посоветовал начать изучение С#? тем более Вы говорите, что новичок в Си++. А так напишите что должна выполнять Ваша программа? Но судя по тому что у Вас AtTiny45 то Вы будете реализовывать hid девайс. Поэтому в качестве самой оптимальной библиотеки посоветую V-USB: http://www.obdev.at/products/vusb/index.html

А теперь попытаюсь показать реализацию такого рода ПО: Подключаем Все необходимое, в том числе библиотеку V-USB.

namespace MyUSB {
public partial class izuchaem_usb : Form {
int smplcnt = 0;
     public usbscope()
            {
                InitializeComponent();
                this.usb.ProductId = 0x0002;
                this.usb.VendorId = 0x4242;
            }
    //Проверка наличия связи, но не забудьте на схем если проц интеловский пуловский резистор 1.5 кОм, если АМД то 2.2кОм
            private void usb_OnDeviceArrived(object sender, EventArgs e)
            {
               Label1.Text  = "Ваше устройство подключено!";
            }
            private void usb_OnDeviceRemoved(object sender, EventArgs e)
            {
                if (InvokeRequired)
                {
                    Invoke(new EventHandler(usb_OnDeviceRemoved), new object[] { sender, e });
                }
                else
                {
                    Label1.Text = "Ваше устройство отключено!";
                }
            }
            private void usb_OnSpecifiedDeviceArrived(object sender, EventArgs e)
            {
                Label1.Text = "Найдено HID устройство";
            }
            private void usb_OnSpecifiedDeviceRemoved(object sender, EventArgs e)
            {
                if (InvokeRequired)
                {
                    Invoke(new EventHandler(usb_OnSpecifiedDeviceRemoved), new object[] { sender, e });
                }
                else
                {
                    Label1.Text = "HID устройство отключено";
                }
            }
            protected override void OnHandleCreated(EventArgs e)
            {
                base.OnHandleCreated(e);
                usb.RegisterHandle(Handle);
            }
            protected override void WndProc(ref Message m)
            {
                usb.ParseMessages(ref m);
                base.WndProc(ref m);    // Вводим сообшение на основной форме
            }
            private void usb_OnDataRecieved(object sender, DataRecievedEventArgs args)
            {
                if (InvokeRequired)
                {
                    try
                    {
                        Invoke(new DataRecievedEventHandler(usb_OnDataRecieved), new object[] { sender, args });
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }
                else
                    if(!paused){
                        //Получаем данные с устройства
                        int val1 = (int)args.data[1]
                        smplcnt++;
                        display(val1);
                }
            }
}
}

Как то так. Мой большой совет копать в сторону микроконтроллеров с аппаратным USB, так как по личному опыту знаю, что ничего путного из программного HID USB 1.1 не выжать, но для радиолюбительских конструкций самое то! Желаю удачи в изучении МК - это ну очень увлекательно!)

READ ALSO
Java socket: зависает соединение

Java socket: зависает соединение

Пишу код на Java, код прикреплю ниже, там же комментарии в местах, где зависает соединениеПо документации в c =in

393
Форматирование ввода/вывода в С/С++

Форматирование ввода/вывода в С/С++

Стоит такая задача: есть переменная типа int, которую должен ввести пользовательКак поставить защиту "от дурака", т

364
Thread-safe очередь, и все-все-все

Thread-safe очередь, и все-все-все

Опять у меня идиотский вопрос (простите, но впадаю в старческий маразм, "бабушка ничего не помнит")

272
Как сгенерировать синусоиду на СИ

Как сгенерировать синусоиду на СИ

Привет всем участникам форума! В прошлый раз я задавал вопрос по поводу генерации пилы с использованием СИ на AVRКроме @vanyamelikov мне никто не отвечал,...

486