3

この C 構造をエイリアン 0.50 モジュールを使用して Lua に再定義しようとしていますが、最後に 2 つの char 配列があります。szLibraryPathとはもともと CのようにszLibraryName定義され
char szLibraryPath[MAX_PATH]ています。エイリアンでこれを行うことはできますか?

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
}
4

1 に答える 1

2

エイリアンの作者によるこの回答を見てください。

構造は次のようになります。

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

また、構造体の最後に手動でバイトを読み書きすることにより、配列を取得/設定します(リンクのコードを使用)。2 番目の配列にアクセスするには、MAX_PATH をすべてのオフセットに追加します。

于 2009-12-27T12:41:15.847 に答える