Compilation 如何使用免费的Pascal进行编译
伙计们,我从一个朋友那里得到了一个消息,这个消息应该可以帮助我学到很多东西,但我犯了错误 错误:找不到标识符“TResourceStream” “布尔” “TMemoryStream” “TResourceInfo” “试试看” 及 致命:语法错误,应为“;”,但找到“标识符MS” 请帮助我编译这个。 对不起,我对编程一无所知 这是来源 函数EnumResourceNames(hModule:hModule;//从LoadLibrary/Ex返回的EXE句柄 lpType:PChar;//资源类型(例如:RT\u RCDATA) lpEnumFunc:ENUMRESNAMEPROC;//回调函数地址 lParam:Integer//long Integer(例如:指向对象的指针) ):BOOL;stdcallCompilation 如何使用免费的Pascal进行编译,compilation,compiler-errors,freepascal,Compilation,Compiler Errors,Freepascal,伙计们,我从一个朋友那里得到了一个消息,这个消息应该可以帮助我学到很多东西,但我犯了错误 错误:找不到标识符“TResourceStream” “布尔” “TMemoryStream” “TResourceInfo” “试试看” 及 致命:语法错误,应为“;”,但找到“标识符MS” 请帮助我编译这个。 对不起,我对编程一无所知 这是来源 函数EnumResourceNames(hModule:hModule;//从LoadLibrary/Ex返回的EXE句柄 lpType:PChar;//资源类
function CB_EnumDfmNameProc(hModule: THandle; lpszType, lpszName: PChar;
lParam: Integer): Boolean; stdcall;
var
ms: TMemoryStream;
rs: TResourceStream;
Buffer: array of Byte;
begin
with TResourceInfo(lParam) do
begin
rs := TResourceStream.Create(TResourceInfo(lParam).Module,
lpszname, lpszType); // load resource in memory
try
ms := TMemoryStream.Create;
try
try
SetLength(Buffer, 4);
rs.Read(Buffer[0], SizeOf(Buffer)); // read the first 4 bytes
if string(Buffer) = 'TPF0' then // is it a DFM resource?
begin
rs.Seek(0, 0);
ObjectBinaryToText(rs, ms); // decode DFM
ms.Seek(0, 0);
AddDfm(StrPas(lpszName), ms); // add it to our own list
end;
except
raise;
end;
finally
ms.Free;
end;
finally
rs.free;
end;
end;
Result := True;
end;
procedure TResourceInfo.EnumDfmNames;
begin
if FModule > 0 then // if an EXE file has been loaded
EnumResourceNames(FModule, RT_RCDATA, // go and search RCDATA resources
@CB_EnumDfmNameProc, Integer(Self));
end;
若要格式化代码,请将其复制到文本编辑器中,选择“全部”,然后在TAB size设置为2时键入TAB键两次,或在TAB size设置为4时键入TAB键一次。然后从编辑器中复制并粘贴到S.OStill出现错误