На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (4) « Первая ... 2 3 [4]  все  ( Перейти к последнему сообщению )  
> Определение целевой OS и разряднности препроцессором
    Цитата Wound @
    Ты попросил привести ради интереса, я тебе привел. Что не так то?

    Я думал что это что-то принципиально иное. А так - просто альтернатива. Она мне не нужна, ибо мой механизм с момента написания (2012 год) работает как часики.

    Цитата Wound @
    Ну вот какая разница - писать все в одной функции main

    Для этого у меня отдельный файл-инклюд. Который решает ровно то, что должен решать. И ничего иного. Что не так?

    Цитата Wound @
    Просто обычно делают как, например создают батник/скрипт сборки, в котором пишут что то типа:

    Так и у меня тоже самое, но не для ручной правки. У это меня автоматизировано. К примеру, работаю на нативном тулчейне - оно мне "Linux" прописывает. Выбрал активным другой тулчейн, к примеру x86_64-w64-mingw32.shared - оно мне "Windows" прописывает. И вообще заморачиваться не надо! Это уже давно за меня разработчики GCC/Clang решили (объявив соответствующие дефайны).
      Цитата JoeUser @
      Так и у меня тоже самое, но не для ручной правки. У это меня автоматизировано. К примеру, работаю на нативном тулчейне - оно мне "Linux" прописывает. Выбрал активным другой тулчейн, к примеру x86_64-w64-mingw32.shared - оно мне "Windows" прописывает. И вообще заморачиваться не надо! Это уже давно за меня разработчики GCC/Clang решили (объявив соответствующие дефайны).

      Куда прописывает? И о какой ручной правке речь идет? :-?
      Я лично вижу два варианта для прокидывания версии:
      1) Просто тупо передавать ее извне - как описывал я.
      2) Зашить ее где то в исходнике в виде баяна, потом написать скрипт, который будет парсить этот исходник вычленяя баян, и писать версию, не пойми откуда взятую(или прокинутую из вне или сгенерированную самим же скриптом) в этот файл.

      Я тебе пишу, обычно используют первый вариант. Он тупо проще. Ты мне пишешь - нахрена мне альтернатива, у меня с 2012 года все работает.
      Ну ок, работает, и работает. Мне совершенно коллинеарно, как оно у тебя там работает. :-?
      Сообщение отредактировано: Qraizer -
        Цитата JoeUser @
        Загрузчик сверял актуальную версию на сайте, и искал сигнатуру в исполняемом файле.
        Здорово, когда кодировки совпадают. Я бы сделал параметр командной строки типа -what_is_you_ver и пусть исполняемый файл сам циферки выведет в stdout
          Цитата Qraizer @
          Здорово, когда кодировки совпадают.

          Ну да, в проге я использовал UTF-8. А согласно определению:

          Цитата
          UTF-8 — представление Юникода, обеспечивающее наилучшую совместимость со старыми системами, использовавшими 8-битные символы. Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от двух до шести байт (на деле, только до четырех байт, поскольку в Юникоде нет символов с кодом больше 10FFFF16, и вводить их в будущем не планируется), в которых первый байт всегда имеет вид 11xxxxxx, а остальные — 10xxxxxx.

          моя "сигнатура" состоит из однобайтовых символов. Поэтому тут все норм.

          Цитата Qraizer @
          Я бы сделал параметр командной строки типа -what_is_you_ver и пусть исполняемый файл сам циферки выведет в stdout

          Да, как вариант. Но я уже поступил по-другому. Считаю, что это непринципиально.
            Цитата JoeUser @
            Ну да, в проге я использовал UTF-8.
            Было бы интересно посмотреть работу твоей программы в OS/360. Особенно тебе самому. Много нового о кодировках узнал бы.

            В цитате, кстати, ерунда написана. Могли бы не лениться, а прямо написать, что первый байт имеет вид 1…10X…X, и количество ведущих единиц равно длине кода символа. А так как в цитате, уже трёхбайтовые символы (иероглифы китайские, например) будут кодироваться неправильно. Первым неправильно кодируемым будет '\u1000'.
              Цитата amk @
              Было бы интересно посмотреть работу твоей программы в OS/360. Особенно тебе самому. Много нового о кодировках узнал бы.

              Вообще то под эту "некромантию" не планировалось ... ну да ладно. А с ней что не так? Считал содержимое исполняемого файла в символьный массив, нашел сигнатуру, и ... что не так? Или там читают справа на лево?

              Цитата amk @
              В цитате, кстати, ерунда написана. Могли бы не лениться, а прямо написать, что первый байт имеет вид 1…10X…X, и количество ведущих единиц равно длине кода символа. А так как в цитате, уже трёхбайтовые символы (иероглифы китайские, например) будут кодироваться неправильно. Первым неправильно кодируемым будет '\u1000'.

              Это цитата из вики. Если считаешь, что там написали хрень - могу дать ссылку. Зайдешь и напишешь правильно. Ссылку дать?
                Цитата JoeUser @
                Считал содержимое исполняемого файла в символьный массив, нашел сигнатуру, и ... что не так?
                Если ты программу, которая будет искать сигнатуру скомпилируешь там же в OS/360, то скорее сего всё будет работать, а вот если будешь делать проверку удалённо (эти старички и в сети могут работать), то никакой сигнатуры ты в исполняемом файле не найдёшь. В OS/360 используется кодировка EBCDIC, а кодировка ASCII используется только как внешняя, текстовые файлы в ней надо перекодировать при чтении/записи.

                Добавлено
                Цитата JoeUser @
                Это цитата из вики. Если считаешь, что там написали хрень - могу дать ссылку. Зайдешь и напишешь правильно. Ссылку дать?
                Не надо. На вики как раз правильно написано, а не так как в твоей цитате.

                Может тебе вместо вики какой-то левый сайт с неправильными определениями подсовывают?
                  Цитата amk @
                  Может тебе вместо вики какой-то левый сайт с неправильными определениями подсовывают?

                  Честно говоря забыл откуда брал цитату. По поиску выходит какая-то книга. Но брал точно не оттуда. :-?
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0455 ]   [ 17 queries used ]   [ Generated: 28.03.24, 21:38 GMT ]