0

嘿,伙计们,我正在做一个项目,我必须生成一个包含另一个可执行文件的字节数组的可执行文件,基本上我的程序加载一个可执行文件并将所有相应的字节存储在一个数组中,然后我给 codedom 可执行文件的源代码构建然后我循环遍历包含可执行文件的字节数组,并将其添加到 codedom 源中的新字节数组,然后再使用 codedom 编译

在编译 program2 之前,有没有更简单的方法将 bytearray 从 program1 传递到 program2 的源?

我应该提到我已将源分成 3 个部分,以便我可以将 bytearray :S 添加到源字符串 Oo

我已经查看了完成的代码,它没有任何问题,但是当我用 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;
4

2 回答 2

1

正如 500 指出的那样,如果字节数组中有一个字节与最后一个字节相同,那么您的代码将无法正常工作,这很可能。

修复代码的最简单方法可能是使用库方法来组合字节:

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

Bu 在源代码中有一个字节数组对我来说听起来不是一个好主意。我认为您应该改用嵌入式资源。

于 2013-01-07T20:39:42.763 回答
1

这部分:

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

似乎假设“stryker”中的字节是唯一的 - 也就是说,最后一个值 (stryker[stryker.Length - 1]) 不会出现在其他任何地方。

是这样吗?

于 2013-01-07T19:35:03.733 回答