C++Builder 程序员博客
10 Nov
procedure T.Openfile(pFileName:PChar);
var
FileSize: LongWord;
FileHandle, MapHandle: THandle;
pp, p: pByte;
pTemp: Pointer;
begin
GetHeaderFromAFile(pFileName);
FileHandle := FileOpen(pFileName,fmOpenReadWrite);
FileSize:=FXLength*FYLength*FZLength*FDataType+cOffBytes;
MapHandle := CreateFileMapping(FileHandle,nil,PAGE_READWRITE,0,FileSize,nil);
CloseHandle(FileHandle);
p := MapViewOfFile(MapHandle,FILE_MAP_ALL_ACCESS,0,0,FileSize);
CloseHandle(MapHandle);
if p=nil then
begin
exit;
end;
pPointer:=p;
pp:=pPointer;
inc(pp,cOffBytes);
pTemp:=pp;
pWord:=pTemp;//数据指针
pFloat:=pTemp;//数据指针
end;
pWord = pTemp;//数据指针
pFloat = pTemp;//数据指针
好象這裡要做強制轉換的。新的C++規則:void *可以指向任何類型的指針,但反過來要通過強制轉換來確認。
這種 Pascal代碼沒必要轉成 C++ 的,BCB中可以編譯pas代碼,新增一個pas文件,將代碼放裡面就行了。
就算你轉成了C++,還是使用同樣的“函數接口”。如只為學習目的,針對某語法問題提問即可。