Enum& Fwrite Dilemma

时间:2016-06-04 15:20:51

标签: c delphi delphi-2010

我正在编写一个从C到Delphi的程序,以便在遇到 enum &的问题时制作x64版本。的 fwrite的

enum{ ou2bufsize=1<<16 };
byte ou2buf[ou2bufsize];

fwrite( ou2buf, 1,l, h );

请你告诉我这些是什么&amp;他们是如何在德尔福宣布的?

2 个答案:

答案 0 :(得分:2)

enum{ ou2bufsize=1<<16 };是一个名为ou2bufsize的常量,值为65536(1向左移16位)。 Delphi的等价物是:

const
  ou2bufsize = 1 shl 16;

byte ou2buf[ou2bufsize];是一个固定大小的字节数组,名为ou2buf,包含ou2bufsize个数组元素。 Delphi的等价物是:

ou2buf: array[0..ou2bufsize-1] of byte;

fwrite( ou2buf, 1,l, h );正在从l的起始内存地址向ou2buf所代表的文件写入h个1字节大小的项目。 Delphi的等价物是:

FileWrite(h, ou2buf[0], l);

其中h是由THandleFileCreate()返回的FileOpen(),而l是要写入的字节数。

答案 1 :(得分:1)

x86_64-w64-mingw32-g++.exe -Llib\irrlicht-1.8.3\lib\Win32-gcc -Llib\irrKlang-1.5.0\lib\Win32-gcc -Llib\irrlicht-1.8.3\lib\Win32-gcc -Llib\irrKlang-1.5.0\lib\Win32-gcc -Llib\irrKlang-1.5.0\bin\win32-gcc -o BomberPark.exe .objs\main.o .objs\srcs\AppSetting.o .objs\srcs\Bombs.o .objs\srcs\Camera.o .objs\srcs\Sound.o:Sound.cpp:(.text+0x24): undefined reference to irrklang::createIrrKlangDevice(irrklang::E_SOUND_OUTPUT_DRIVER, int, char const*, char const*)' collect2.exe: error: ld returned 1 exit status定义一个名为enum{ ou2bufsize=1<<16 };的常量,其值为ou2bufsize(1向左移位16位)。

1 shl 16定义了byte ou2buf[ou2bufsize];个字节的数组(名为ou2buf),编号从ou2bufsize0

ou2bufsize-1fwrite( ou2buf, 1,l, h );的第一个l字节写入输出句柄ou2buf