crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику Iron Bug ::: Спасибо сказали: 219 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
5.1.2020, 0:24 Есть ли готовые исходники Aegisub для visual studio 2013 с зависимостями
Цитата(antoxabond @ 2.12.2019, 14:11) *
2.1. Установить Git, а затаем TortoiseGit
2.2. переити например в корень диска "c:\" и вызвать контекстное меню.
Выбрать TortoiseGit, затем clone, заполнить данные формы:
поле URL установить "https://github.com/Aegisub/Aegisub.git",
поставить галочку "recursive",
поставить галочку "branch" и ввести рядом в поле версию "v3.2.2",
установить имя, например, "Aegisub_3.2.2-2013".

вот это всё можно было бы заменить установкой git и командой
git clone --depth=1 --single-branch --branch v3.2.2 Aegisub_3.2.2-2013

оно бы и качалось куда быстрее, не все ветки и без истории, ибо она тебе при сборке не нужна.
antoxabond,
17.11.2017, 23:30 [РЕШЕНО]CRC16 для Modbus
алгоритм верный. я даже проверила по-быстрому. всё правильно он считает. может, ты ему данные как-то неправильно скармливаешь?

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <memory.h>

uint16_t crc(uint8_t *data, uint8_t size)
{
        uint16_t pos;
        uint8_t i;
        uint16_t crc = 0xFFFF;

        for (pos = 0; pos < size; pos++)
        {
                crc ^= (uint16_t)data[pos];          // XOR byte into least sig. byte of crc

                for (uint8_t i = 8; i != 0; i--)
                {    // Loop over each bit
                        if ((crc & 0x0001) != 0)
                        {      // If the LSB is set
                                crc >>= 1;                    // Shift right and XOR 0xA001
                                crc ^= 0xA001;
                        }
                else                            // Else LSB is not set
                        crc >>= 1;                    // Just shift right
                }
        }
        // Note, this number has low and high bytes swapped, so use it accordingly (or swap bytes)
        return crc;
}

void convert(const char *src, uint8_t **dst, size_t *dst_size)
{
        size_t i;
        *dst_size = strlen(src)/2;
        *dst = (uint8_t*)malloc(*dst_size);

        for(i=0; i<*dst_size; i++) {
                sscanf(src+i*2, "%02x", *dst+i);
        }
}

void print_crc(const char *data)
{
        uint8_t *value;
        size_t size;
        size_t i;
        uint16_t val_crc;

        convert(data,&value,&size);

        for(i=0; i<size; i++)
                printf("%02X",value[i]);
        printf("\n");

        val_crc = crc(value,size);
        printf("0x%04X\n",val_crc);

        free(value);
}

int main()
{
        print_crc("01040040000a");
        print_crc("0104143a11e6ee3b16c44d39e24257381730ba3d862437");
        return 0;
}
DaLgAMYeVr1, larry,
17.11.2017, 22:43 Есть-ли здесь СПЕЦЫ ?
у тебя очень примитивные и неграмотные рассуждения про системы. я системный программист с опытом более 20 лет и мне на эти глупости отвечать подробно просто некогда.
если ты хочешь что-то изучать - бери и читай документацию по написанию драйверов. тогда, вероятно, ты поймёшь, почему ты неправ и почему твои вопросы не имеют смысла в контексте современных операционных систем. вся документация по ядру Linux есть в онлайне. она быстро устаревает, поэтому самое актуальное - это документация в самом кернеле. есть книга LDD (Linux Device Drivers), там подбробнее написано, но не под совсем свежие ядра. под венду придётся покупать книги по KMDF и т.д. другой документации под венду практически нет.
но я тебе сразу скажу, что никаких "универсальных" драйверов не бывает. драйвер заточен для работы с конкретной железякой и привязан к специфике чипов, с которыми он общается. и поверх него до юзерского уровня может быть много других драйверов и библиотек. так что юзер напрямую с прерываниями ничего делать не должен.
9or6UxhWRa1, gHzcXItj3a1,
15.11.2017, 11:51 Есть-ли здесь СПЕЦЫ ?
Цитата(Алексей1153 @ 14.11.2017, 8:47) *
я использовал в винде libusb, именно в отдельном потоке. Нормальная штука, работает чётко, в отличие от зависающего майкрочиповского драйвера

под вендой она иногда зависает, судя по отзывам. честно говоря, я уже давно венду живьём не видела, так что меня сейчас этот вопрос мало волнует. но судя по форумам, проблема остаётся актуальной.

Цитата(JohnZ @ 14.11.2017, 13:53) *
Для потока и LibUSB у меня тоже реализовано, но некузяво это, при наличии аппаратного IRQ.
В том-то и вопрос, как выцарапать это IRQ у системы ?!
Где и как сказать драйверу что-бы он отдал конкретный EVENT моей Call-Back-чной ф-ции ?
Пишу под ARM на Linux (RPi-2) ...

я тебе ещё раз говорю: почитай хотя бы основы про систему, под которую ты собрался что-то писать.
последний раз, когда прерывания были доступны юзеру - это времена MS-DOS. с тех пор системы стали сложнее и драйвер в принципе не обязан ничего предоставлять юзеру. конечно, ты можешь написать свой драйвер, но это довольно сложная задача и главное, что это в принципе не нужно. потому что драйвер как раз предоставляет интерфейсы для libusb и всяких там HID интерфейсов и юзерский софт пользуется стандартизированными интерфейсами библиотек, а не затачивается под разные драйвера. на самом деле, с драйверами всё несколько сложнее, их там несколько уровней и они передают между собой сообщения. но то, о чём ты говоришь, доступно только драйверам самого низкого уровня и они точно ничего о прерываниях юзеру не сообщают. это загрузило бы ядро системы ненужными коллбеками вплоть до полного зависания.
9or6UxhWRa1,
13.11.2017, 19:09 Есть-ли здесь СПЕЦЫ ?
у тебя в принципе неправильное понимание работы современных осей. ни одна ось не даст тебе из юзерспейса "сесть на прерывание". максимум ты можешь подписаться на события от драйвера и получать уведомления о том, что произошли какие-то события.
для унификации работы с USB в Linux есть lubusb, которая как раз собирает воедино все разные интерфейсы железа и предоставляет общий интерфейс для ПО. в венде есть какой-то WinUSB, но он весьма ограничен, насколько мне известно. и под венду вроде можно собрать libusb.
9or6UxhWRa1, DaLgAMYeVr1, hxr3Wawd9g1,
6.6.2017, 2:38 Объявления о работе форума
Сегодня маленько подхимичила настройки. Теперь должно тормозить меньше.
Если обнаруживаете какие-то изменения (особенно негативные) в работе форума - сообщайте.
ViGOur, Алексей1153,
6.5.2017, 4:40 Подходящий runtime для GCC 6.1.0
LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

возможны и другие места для поиска библиотек.
но то, что у тебя происходит - это ненормально. это криво настроенная система и без рутовых прав ты это не исправишь.
AD,
11.1.2016, 14:22 Array
Цитата(AD @ 11.1.2016, 13:15) *
Я тоже не пользуюсь auto и прочими прелестями нового стандарта, но тут к ужасу узнал, что на подходе новый стандарт. Думаю, при появлении свободного времени поизучать новый стандарт.

да чота в последние годы новые стандарты плодятся, как грибы после дождя! я успешно освоила С++11 и поизучала С++14, а сейчас уже новые грядут.
я последние года два в основном чистым С занимаюсь, ощущаю, что отстаю от прогресса и надо сесть и почитать про последние новости стандартизации, для общего развития.
кстати, про чистый С. вчера на ЛОРе увидела ссылку на неплохую обзорную статью по С99 и С11. там ничего такого особенного, но сжато и понятно написано. возможно, для кого-то это будет полезно:
https://matt.sh/howto-c
AD, lanz,
28.10.2015, 16:09 Кириллица в Qt 5.5
Это багофича новой Qt. Решение см. здесь: http://www.forum.crossplatform.ru/index.php?showtopic=10548
iCast,
6.10.2015, 8:41 Умные указатели через сигналы.
обычный shared_ptr подойдёт.
вопрос не относится к Qt, переношу его в вопросы по С++.
call_me_Frank,
28.8.2015, 10:36 Что я не так делаю с указателями?
Цитата(Shaitan @ 27.8.2015, 18:48) *
Спасибо за ошибку.

да не за что. это твоя ошибка, ты её сам сделал ;)

код надо писать внимательно. если опыта нет, то тем более не нужно торопиться.

например, ты уверен, что это условие написано правильно?
if((_strList[i] != "=")||(_strList[i] != ".")||(_strList[i] != ",")||(_strList[i] != ":"))
Shaitan,
27.8.2015, 15:32 Что я не так делаю с указателями?
Цитата(Shaitan @ 27.8.2015, 15:03) *
Насчёт
delete &rVar; Это я пытаюсь очистить память от указателей. Согласен нужно это сделать иначе.

это выражение просто вообще смысла не имеет, причём в любом контексте. и оно всегда будет вызывать сбой в памяти.

Цитата(Shaitan @ 27.8.2015, 15:03) *
Вторая странность это я узнаю длину списка и перебираю его до того пока не упрусь в ";"

нет. до конца это списка это никогда не дойдёт, потому что условие leght >= i его выкинет ровно посередине.
простая система уравнений
Цитата
leght = _strList.length() - i;
leght = i;

даёт
Цитата
i = _strList.length()/2;

так что с логикой тут серьёзные проблемы.
Shaitan,
27.8.2015, 11:01 Что я не так делаю с указателями?
ну, при беглом просмотре кода, сразу же в первом блоке:
   delete &rVar;

зачем тут адрес? подумай, что ты удаляешь.

вообще, логика кода какая-то странная. ты не проверяешь, что _strList содержит минимум два элемента, хотя обращаешься к ним.

потом, вот это условие тоже какое-то малопонятное:
leght = _strList.length() - i;
        while(leght >= i ...


не исключено, что там ещё есть ошибки логические.
в общем, внимательнее надо код писать.
Shaitan,
7.7.2015, 10:10 QSerialPort
чем длиннее провод - тем ниже должна быть скорость передачи.
и на проводе должны быть терминаторы. если их нет, то скорее всего в сигнале будут отражённые паразитные данные.
да, если в непосредственной близости присутствуют двигатели, трансформаторы или любые девайсы с мощными токами в обмотках, то возможны помехи на линии и данные также могут искажаться.
в целом от подобных вещей спасает только вычисление CRC на каждый пакет и нумерация пакетов плюс система перезапроса пакета, в случае его потери или испорченных данных.
leonneon_89,
21.6.2015, 9:05 Регулярные выражения
у тебя регулярное выражение правильное, а метод неправильный. Split разделяет выражение по указанному разделителю. соответственно, сам разделитель вырезается. я не спец в Qt, но гугл с первого захода выдал некий метод search:
http://stackoverflow.com/questions/1837469...using-qt-regexp
larry,
15.5.2015, 10:42 firebird, insert возвращает ошибку -1, строку вставляет
insert вернул true. в этом случае незачем читать что-то из lastError, там может быть что угодно.
gvenihvivar,
27.4.2015, 8:47 Phonon: не понятная ошибка
у тебя линковщик библиотеку не нашёл. её там действительно нет.
fredwriter,
3.4.2015, 9:26 WindowTitle, разделенная на 2 части
зачем обязательно делать это в заголовке? сделайте лейблы с надписями ниже, в самом окне, хоть десять штук.
Zaca,
25.3.2015, 12:03 Файловый ввод-вывод
убери ios::app и добавь ios::trunc.
почитай в документации про флаги: http://www.cplusplus.com/doc/tutorial/files/
dmitryrocks,
27.2.2015, 23:54 Кросс - компиляция
по-моему, в данном случае проще всего поставить линюксовую виртуалку и в ней собрать всё. с кросскомпиляцией даже у опытных программистов бывают проблемы, а уж с кросскомпиляцией библиотек типа Qt лучше вообще не связываться. быстрее и проще собрать на виртуалке.
wiz29,
26.2.2015, 11:21 подклассы Singlton
в случае, если перекрёстные ссылки всё-таки есть (это должны быть именно ссылки, а не объекты класса), то стандартное решение состоит в использовании предварительной декларации класса:
class ClassB;  // предварительная декларация класса ClassB

class ClassA {
     ClassB *ptrB;
};

class ClassB {
    ClassA *ptrA;
    ClassA A;  // после полного определения класса мы можем использовать не только указатели, но и объекты класса
};
call_me_Frank,
25.2.2015, 19:02 подклассы Singlton
насчёт решения с классами - какое-то оно странное. честно говоря, непонятно, как это будет использоваться. подумай ещё. это полезно. и обязательно попробуй использовать свои классы, без этого ты не поймёшь потенциальных минусов своего решения.

Цитата(call_me_Frank @ 25.2.2015, 19:26) *
и появился вопрос: как развязать классы по отдельным h-файлам? получается зацикленное включение хедеров

это стандартное решение в С/C++. каждый хэдер всегда заключён в блок препроцессорных определений:
#ifndef SOME_HEADER_NAME
#define SOME_HEADER_NAME
....
<код>
....
#endif

и ещё: лучше не использовать имена переменных, начинающиеся с двух подчёркиваний ( __ ) - часто это зарезервированные имена служебных переменных и функций и можно случайно напороться на конфликт с определениями в стандартных библиотеках.
call_me_Frank,
19.2.2015, 8:48 Подключение библиотеки crashrpt к Qt5.4.0(VS 2010)
Цитата(Trisch @ 18.2.2015, 15:42) *
Проверил при помощи depends файлы .h и .lib

Выдало такую ошибку:
Error: At least one file was not a 32-bit or 64-bit Windows module.

да, она не жрёт lib-файлы. только dll-ки. попробуй так:
Цитата
dumpbin.exe -headers foo.lib

я, честно говоря, плохо помню, потому что давно уже не пишу под венду. в общем, тебе нужен инструмент для просмотра экспорта и импорта lib-файлов. там должно быть что-то стандартное, может, есть какие-то утилиты для большего удобства.

я подозреваю, что у тебя каким-то образом получилась несовместимость юникода и не-юникода. одна часть собралась с юникодом, а другая - без него.
Trisch,
14.1.2015, 13:20 python std::shared_ptr clang++
Цитата(alexy @ 14.1.2015, 0:56) *
gcc не осилил скомпилить приведеннй код с этим примером

что-то у тебя неправильно установлено или проблемы с железом. компилятор может ругаться, но завешивать систему на таком примитиве он не может.

я не отслеживала самые последние изменения, но, по крайней мере, до версии 1.55.0 C++11 в бусте не использовался явно. главным образом потому, что буст сам по себе прототип стандартизации С++ и когда что-то становится стандартом, то буст пересматривается. а ещё потому, что С++11 с полным набором всех фич до сих пор не существует в некоторых компиляторах, которые буст поддерживает.

в последних версиях GCC (начиная с 4.7) для С++11 есть опция -std=c++11 (или -std=c++0x, начиная с GCC 4.3, но в старых версиях может быть далеко не полная поддержка фич C++11).
AD,
20.12.2014, 15:43 Ищу библиотеку обработки звука
использовать API для jackd. всё стандартно, как работа с любой другой библиотекой.
mezmay,

8 страниц V   1 2 3 > » 
RSS Текстовая версия Сейчас: 3.12.2024, 20:44