我一直有一些困难与我的inno pascal脚本。我让自己熟悉了一点(只是一点点)但是现在我越来越清楚Pascal 脚本可能非常不同。
使用freepascal可以很好地编译以下代码:
program test;
uses windows;
function GetPCName: string;
var
buffer: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char;
Size: Cardinal;
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
Windows.GetComputerName(@buffer, Size);
Result := StrPas(buffer);
end;
begin
writeln('ComputerName: ' + (GetPCName));
readln;
end.
我如何在我的inno [code]部分做这样的事情?我尝试了上面的,但它似乎不喜欢"使用窗口;"
首先,您可以使用内置的GetComputerNameString
支持功能。
您可以在代码部分声明一个函数,以便能够调用库函数。像下面这样的代码应该可以工作:
[Code]
function GetComputerName(lpBuffer: AnsiString; var nSize: DWORD): BOOL;
external 'GetComputerNameA@kernel32.dll';
function GetPCName: string;
var
Size: Cardinal;
buffer: AnsiString;
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
SetLength(buffer, Size);
GetComputerName(buffer, Size);
Result := buffer;
end;
参见'codedll。