2013-01-07 5 views
0

안녕 얘들 아, 내가 다른 실행 파일의 바이트 배열을 포함하는 실행 파일을 생성해야하는 프로젝트에서 일하고있다. 기본적으로 프로그램은 실행 파일을로드하고 배열의 해당 바이트를 모두 저장한다. 그리고 나서 codesom에 실행 파일의 소스를 제공 한 다음, 실행 파일을 포함하는 bytearray를 통해 루핑하여 코드 룸 소스의 새로운 bytearray에 추가합니다.바이트 배열을 코딩 솜으로 옮겨서 에러가납니다

더 쉬운 방법은 다음과 같습니다. program2를 컴파일하기 전에 program1에서 program2의 소스까지 bytearray?

나는 내가이 ByteArray를 추가 할 수 있도록 내가 3 개 부분으로 소스를 분할 한 것을 언급해야한다 : S를 내가 완성 된 코드를 통해보고하고 아무 문제 때 메신저 그것으로 만 없다

소스 문자열 각종에 된 CodeDom로 컴파일 나는 folloing 오류

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; 
+0

오류는 코드를보고 Const 변수를 상수가 아닌 값으로 변경해야하는 것처럼 Cont 값을 바이트 사운드로 변환 할 수 없다는 것을 알려줍니다. 아래 코드는이 코드를 지원하지 않는 것 같습니다. errror하지만 아마도 stryker가 코드에 정의 된 곳을 보여 주어야합니다. – MethodMan

답변

1

이 부분 :

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

은 "스트라이커"의 바이트 고유 있다고 가정하는 것 - ([- 1 stryker.Length] 스트라이커) 표시되지 않습니다 마지막 값은, 즉 다른 곳.

그런 경우입니까?

+0

'197185'는 쉼표로 구분해야하는 2 바이트의 값과 정확하게 같습니다. – svick

+0

내가 게시 한 코드를 잊어 버리십시오 : P는 내가 문제를 볼 수 있으며 그것을 근근이하는 방법이 가능하지 않습니다. bassicly 코드화 된 실행 파일에 하나의 배열을 전송해야합니다. 내 바이트 배열 (stryker) 코드 롬에 의해 컴파일 된 새 실행 파일에 전송해야합니다 : S – Paze

1

500에서 지적했듯이 마지막 바이트와 동일한 바이트 배열에 바이트가 있으면 코드가 올바르게 작동하지 않을 가능성이 높습니다.

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

니어 나에게 좋은 생각이 같은 소리하지 않는 소스 코드 내부 바이트 배열을 갖는 아마

코드를 해결하는 가장 쉬운 방법은 바이트를 결합하는 라이브러리 방법을 사용하는 것입니다. 대신 임베디드 리소스를 사용해야한다고 생각합니다.

+0

물론 음, 거기에 배열의 마지막 바이트와 동일한 바이트 수 있습니다. LOL : P 정말 채워진 된 배열을 컴파일해야합니다. 코드 롬으로 : S는 가능합니까? – Paze