Inno Setup语法错误
Inno Setup Syntax error
我有一个更大的 Inno Setup 脚本。
我认为它应该可以正常工作,但由于某些原因它不能。编译器在 function PrepareToInstall
行停止
编译器告诉我:
Syntax error.
有人发现我的错误吗?
非常感谢!
[Code]
//I have removed some functions of which I think they don't contribute to the problem
function IsServiceRunning(ServiceName: string): boolean;
var
hSCM: HANDLE;
hService: HANDLE;
Status: SERVICE_STATUS;
begin
hSCM := OpenServiceManager();
Result := false;
if hSCM <> 0 then
begin
hService := OpenService(hSCM, ServiceName, SERVICE_QUERY_STATUS);
if hService <> 0 then
begin
if QueryServiceStatus(hService, Status) then
begin
Result := (Status.dwCurrentState = SERVICE_RUNNING)
end;
CloseServiceHandle(hService)
end;
CloseServiceHandle(hSCM)
end
end;
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
if IsServiceRunning("oscmaintenanceserver") then begin
if StopService("oscmaintenanceserver") then begin
RemoveService("oscmaintenanceserver");
end;
end;
end;
end;
是"oscmaintenanceserver"
。 Pascal (Script) 中没有双引号。 string literals.
总是使用单引号
此外,end
PrepareToInstall
。
正确的代码是:
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
if IsServiceRunning('oscmaintenanceserver') then begin
if StopService('oscmaintenanceserver') then begin
RemoveService('oscmaintenanceserver');
end;
end;
end;
我有一个更大的 Inno Setup 脚本。
我认为它应该可以正常工作,但由于某些原因它不能。编译器在 function PrepareToInstall
编译器告诉我:
Syntax error.
有人发现我的错误吗? 非常感谢!
[Code]
//I have removed some functions of which I think they don't contribute to the problem
function IsServiceRunning(ServiceName: string): boolean;
var
hSCM: HANDLE;
hService: HANDLE;
Status: SERVICE_STATUS;
begin
hSCM := OpenServiceManager();
Result := false;
if hSCM <> 0 then
begin
hService := OpenService(hSCM, ServiceName, SERVICE_QUERY_STATUS);
if hService <> 0 then
begin
if QueryServiceStatus(hService, Status) then
begin
Result := (Status.dwCurrentState = SERVICE_RUNNING)
end;
CloseServiceHandle(hService)
end;
CloseServiceHandle(hSCM)
end
end;
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
if IsServiceRunning("oscmaintenanceserver") then begin
if StopService("oscmaintenanceserver") then begin
RemoveService("oscmaintenanceserver");
end;
end;
end;
end;
是"oscmaintenanceserver"
。 Pascal (Script) 中没有双引号。 string literals.
此外,end
PrepareToInstall
。
正确的代码是:
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
if IsServiceRunning('oscmaintenanceserver') then begin
if StopService('oscmaintenanceserver') then begin
RemoveService('oscmaintenanceserver');
end;
end;
end;