1
C++로 작성된 DLL이 LZO 라이브러리를 둘러싼 C#의 래퍼입니다. 그러나 테스트 용으로 형식을 변환 할 수 있는지 알고 싶기 때문에 파일의 내용과 크기를 가져 와서 복사본을 작성하는 테스트 함수를 만들었습니다.C# 응용 프로그램에서 C++ 함수 실행
[DllImport(@"GLZO.dll")]
public static extern void WriteFile(byte[] source, int size);
을 그리고 다음과 같이 호출 : http://i.epvpimg.com/u4mgh.png
나는 다음과 같이 가져 :
byte[] g = ReadFile("raw/roota.eix");
WriteFile(g, g.Length);
다음
extern "C"
{
__declspec(dllexport) void WriteFile(lzo_uint8 * source, int size)
{
FILE * fileToWrite;
fileToWrite = fopen("test.eix", "wb+");
if (fileToWrite)
{
fwrite(source, 1, size, fileToWrite);
}
fclose(fileToWrite);
free(source);
}
}
는 가독성에 대한 코드의 이미지입니다
문제는 ReadFile 함수에 없습니다. 확인했습니다. 다른 파일에서 복사본을 만들고 체크섬으로 두 가지를 모두 확인했습니다.
내 질문은 : 어떻게하면 바이트 []를 lzo_uint8 * (unsigned char *)로 변환해야합니까?