Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.222.12] |
|
Страницы: (4) « Первая ... 2 3 [4] все ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Я думал что это что-то принципиально иное. А так - просто альтернатива. Она мне не нужна, ибо мой механизм с момента написания (2012 год) работает как часики. Для этого у меня отдельный файл-инклюд. Который решает ровно то, что должен решать. И ничего иного. Что не так? Цитата Wound @ Просто обычно делают как, например создают батник/скрипт сборки, в котором пишут что то типа: Так и у меня тоже самое, но не для ручной правки. У это меня автоматизировано. К примеру, работаю на нативном тулчейне - оно мне "Linux" прописывает. Выбрал активным другой тулчейн, к примеру x86_64-w64-mingw32.shared - оно мне "Windows" прописывает. И вообще заморачиваться не надо! Это уже давно за меня разработчики GCC/Clang решили (объявив соответствующие дефайны). |
Сообщ.
#47
,
|
|
|
Цитата JoeUser @ Так и у меня тоже самое, но не для ручной правки. У это меня автоматизировано. К примеру, работаю на нативном тулчейне - оно мне "Linux" прописывает. Выбрал активным другой тулчейн, к примеру x86_64-w64-mingw32.shared - оно мне "Windows" прописывает. И вообще заморачиваться не надо! Это уже давно за меня разработчики GCC/Clang решили (объявив соответствующие дефайны). Куда прописывает? И о какой ручной правке речь идет? Я лично вижу два варианта для прокидывания версии: 1) Просто тупо передавать ее извне - как описывал я. 2) Зашить ее где то в исходнике в виде баяна, потом написать скрипт, который будет парсить этот исходник вычленяя баян, и писать версию, не пойми откуда взятую(или прокинутую из вне или сгенерированную самим же скриптом) в этот файл. Я тебе пишу, обычно используют первый вариант. Он тупо проще. Ты мне пишешь - нахрена мне альтернатива, у меня с 2012 года все работает. Ну ок, работает, и работает. Мне совершенно коллинеарно, как оно у тебя там работает. |
Сообщ.
#48
,
|
|
|
Цитата JoeUser @ Здорово, когда кодировки совпадают. Я бы сделал параметр командной строки типа -what_is_you_ver и пусть исполняемый файл сам циферки выведет в stdout Загрузчик сверял актуальную версию на сайте, и искал сигнатуру в исполняемом файле. |
Сообщ.
#49
,
|
|
|
Цитата Qraizer @ Здорово, когда кодировки совпадают. Ну да, в проге я использовал UTF-8. А согласно определению: Цитата UTF-8 — представление Юникода, обеспечивающее наилучшую совместимость со старыми системами, использовавшими 8-битные символы. Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от двух до шести байт (на деле, только до четырех байт, поскольку в Юникоде нет символов с кодом больше 10FFFF16, и вводить их в будущем не планируется), в которых первый байт всегда имеет вид 11xxxxxx, а остальные — 10xxxxxx. моя "сигнатура" состоит из однобайтовых символов. Поэтому тут все норм. Цитата Qraizer @ Я бы сделал параметр командной строки типа -what_is_you_ver и пусть исполняемый файл сам циферки выведет в stdout Да, как вариант. Но я уже поступил по-другому. Считаю, что это непринципиально. |
Сообщ.
#50
,
|
|
|
Цитата JoeUser @ Было бы интересно посмотреть работу твоей программы в OS/360. Особенно тебе самому. Много нового о кодировках узнал бы.Ну да, в проге я использовал UTF-8. В цитате, кстати, ерунда написана. Могли бы не лениться, а прямо написать, что первый байт имеет вид 1…10X…X, и количество ведущих единиц равно длине кода символа. А так как в цитате, уже трёхбайтовые символы (иероглифы китайские, например) будут кодироваться неправильно. Первым неправильно кодируемым будет '\u1000'. |
Сообщ.
#51
,
|
|
|
Цитата amk @ Было бы интересно посмотреть работу твоей программы в OS/360. Особенно тебе самому. Много нового о кодировках узнал бы. Вообще то под эту "некромантию" не планировалось ... ну да ладно. А с ней что не так? Считал содержимое исполняемого файла в символьный массив, нашел сигнатуру, и ... что не так? Или там читают справа на лево? Цитата amk @ В цитате, кстати, ерунда написана. Могли бы не лениться, а прямо написать, что первый байт имеет вид 1…10X…X, и количество ведущих единиц равно длине кода символа. А так как в цитате, уже трёхбайтовые символы (иероглифы китайские, например) будут кодироваться неправильно. Первым неправильно кодируемым будет '\u1000'. Это цитата из вики. Если считаешь, что там написали хрень - могу дать ссылку. Зайдешь и напишешь правильно. Ссылку дать? |
Сообщ.
#52
,
|
|
|
Цитата JoeUser @ Если ты программу, которая будет искать сигнатуру скомпилируешь там же в OS/360, то скорее сего всё будет работать, а вот если будешь делать проверку удалённо (эти старички и в сети могут работать), то никакой сигнатуры ты в исполняемом файле не найдёшь. В OS/360 используется кодировка EBCDIC, а кодировка ASCII используется только как внешняя, текстовые файлы в ней надо перекодировать при чтении/записи. Считал содержимое исполняемого файла в символьный массив, нашел сигнатуру, и ... что не так? Добавлено Цитата JoeUser @ Не надо. На вики как раз правильно написано, а не так как в твоей цитате.Это цитата из вики. Если считаешь, что там написали хрень - могу дать ссылку. Зайдешь и напишешь правильно. Ссылку дать? Может тебе вместо вики какой-то левый сайт с неправильными определениями подсовывают? |
Сообщ.
#53
,
|
|
|
Цитата amk @ Может тебе вместо вики какой-то левый сайт с неправильными определениями подсовывают? Честно говоря забыл откуда брал цитату. По поиску выходит какая-то книга. Но брал точно не оттуда. |