транспортировка массива байтов в codedom дает мне ошибку

Привет, ребята, я работаю над проектом, в котором мне нужно сгенерировать исполняемый файл, содержащий массив байтов другого исполняемого файла, в основном моя программа загружает исполняемый файл и сохраняет все соответствующие байты в массиве, а затем я даю codedom источник исполняемого файла, который я собираюсь для сборки, а затем я перебираю массив байтов, содержащий исполняемый файл, и добавляю его в новый массив байтов в исходном коде перед компиляцией с кодом

есть ли более простой способ передать массив байтов из программы1 в источник программы2 перед компиляцией программы2?

я должен упомянуть, что я разделил исходный код на 3 части, чтобы я мог добавить байтовый массив: S к исходной строке O.o

я просмотрел готовый код, и в нем нет ничего плохого, но когда я компилирую его с помощью codedom, я получаю следующую ошибку

Error: C\Users\*myname*\AppData\Local\Temp\ycfx9ffp.0.cs(1,246) : error CS0031: Constant value '197185' cannot be converted to a 'byte'

и я понятия не имею, как отлаживать эту строку, лол: S

это цикл, который я использую для добавления байтов к источнику:

foreach(byte mybyte in stryker)
        {
            if (mybyte != stryker[stryker.Length - 1])
                part2 += mybyte + ", ";
            else
                part2 += mybyte;
        }
        string source = part1 + part2 + part3;

person Paze    schedule 07.01.2013    source источник
comment
Ошибка говорит вам, что вы не можете преобразовать значение Cont в байт, звучит так, как будто вам нужно заглянуть в свой код и изменить эту переменную Const на непостоянное значение. Код ниже, похоже, не поддерживает ошибку, но, возможно, вы должны показать, где stryker определено в вашем коде для начала..   -  person MethodMan    schedule 07.01.2013


Ответы (2)


Эта часть:

if (mybyte != stryker[stryker.Length - 1])
                part2 += mybyte + ", ";

похоже, предполагается, что байты в «страйкере» уникальны, то есть последнее значение (страйкер [страйкер.Длина - 1]) больше нигде не появляется.

Так ли это?

person 500 - Internal Server Error    schedule 07.01.2013
comment
197185 выглядит точно так же, как значения двух байтов, которые должны быть разделены запятой. - person svick; 08.01.2013
comment
посмотрите, забудьте об этом коде, который я разместил: P, я вижу проблему, и то, как я приближаюсь к ней, невозможно, в основном мне нужно передать один массив в исполняемый файл codedom: P получить его? мой массив байтов (страйкер) необходимо перенести в новый исполняемый файл, скомпилированный codedom: S - person Paze; 08.01.2013

Как указал 500, ваш код не будет работать правильно, если в массиве байтов есть байт, который совпадает с последним байтом, что весьма вероятно.

Вероятно, самый простой способ исправить ваш код — использовать библиотечный метод для объединения байтов:

part2 = string.Join(", ", stryker);

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

person svick    schedule 07.01.2013
comment
ну да, есть тонны байтов, которые совпадают с последним байтом в массиве, лол: P мне действительно просто нужно скомпилировать заполненный массив в codedom: S это возможно? - person Paze; 08.01.2013