2009-12-27 2 views
3

나는이 C 구조체를 외계인 0.50 모듈과 함께 루아에 재정의하려하고있다. 그러나 나는 끝에 두 개의 char 배열을 가지고있다. szLibraryPathszLibraryName은 원래
으로 정의됩니다.이 작업은 외계인과 함께 할 수 있습니까?루아와 외계인 구조

LIBRARY_ITEM_DATA = alien.defstruct{ 
    { "hFile", "long" }, 
    { "BaseOfDll", "long" }, 
    { "hFileMapping", "long" }, 
    { "hFileMappingView", "long" }, 
    { "szLibraryPath", "byte" }, -- fix to MAX_PATH 
    { "szLibraryName", "byte" } -- fix to MAX_PATH 
} 

답변

2

Alien의 저자가 this answer을 봅니다.

귀하의 구조는 다음과 같아야합니다

LIBRARY_ITEM_DATA = alien.defstruct{ 
    { "hFile", "long" }, 
    { "BaseOfDll", "long" }, 
    { "hFileMapping", "long" }, 
    { "hFileMappingView", "long" }, 
    { "additionalFields", "char" } 
} 
LIBRARY_ITEM_DATA.size = LIBRARY_ITEM_DATA.size + 2*MAX_PATH - 1 

그리고 당신은/(링크의 코드를 사용하여) 구조체의 끝에서 수동으로 읽기/쓰기 바이트 배열을 설정받을 것입니다. 두 번째 배열에 액세스하려면 모든 오프셋에 MAX_PATH를 추가하십시오.