나는 오프셋이있는 구조체와 문자열을 포함하는 이진 데이터 청크를 가지고 있습니다. 는 C++에서이 쉽다 : C#에서 충분히 간단이진 데이터를 문자열로 변환
struct foo
{
int offset;
char * s;
}
void * data;
... data is read and set
foo * header = (foo*) data;
header->s = (int)header-> + (int)data;
int len = strlen(header->s);
char* ns = new char[len+1];
strcpy(ns,header->s);
... 이렇게 얼마나? 가장 큰 문제는 문자열의 길이를 알 수 없다는 것입니다. null로 종료됩니다.
나는 byte[]
의 데이터와 IntPtr을 메모리에 가지고 있는데 그 데이터에 POINTER가 필요하다. (char *
) 문자열의 길이를 얻을 수있는 것이다.
인가 :
는이 일을하는 또 다른 방법은
ASCIIEncoding.ASCII.GetString()
방법을 사용하는 것입니다? 아니면 그냥 임의의 이진 데이터입니까? 암호화 된 데이터 또는 이미지? –왜 C++ 코드는'std :: string'을 사용하지 않습니까? C 라이브러리와 상호 운용해야합니까? – dan04
dan04, C++은 그가 수행 할 수있는 방법을 보여주는 예제로 게시되었지만 C#에서 완료해야합니다. - 내가 틀렸다면 누군가가 나를 정정하십시오. – hometoast