GARANTIR DESCONTO

Fórum Descobrir se o executável foi compilado para 32 ou 64 bits #482804

16/06/2014

0

Olá

Gostaria de saber como faço para retornar se minha aplicação em Delphi foi compilada para
win32 ou win64 (Arquitetura do executável, não do windows)
No caso o codigo fonte é o mesmo para as duas compilações,
mas vou tomar decisões diferentes(Para cada plataforma, vou buscar as dlls da respectiva plataforma)
Estou trabalhando com Delphi XE5
Gabriel Kissel

Gabriel Kissel

Responder

Posts

11/07/2014

Bhawan Junior

Não sei se você já encontrou a solução, encontrei neste link e modifiquei para a minha necessidade {https://www.devmedia.com.br/forum/funcao-para-descobrir-se-e-windows-32-ou-64bits/426921} abaixo segue o código. Espero que seja útil.

class function TRegras_iCloud.Windows_Plataforma: String;
type
TIsWow64Process = function(AHandle:THandle; var AIsWow64: BOOL): BOOL; stdcall;
var
vKernel32Handle: DWORD;
vIsWow64Process: TIsWow64Process;
vIsWow64: BOOL;
begin
Result := 'Sistema operacional Windows 64 Bits';

vKernel32Handle := LoadLibrary('kernel32.dll');
if(vKernel32Handle = 0)then
Exit;

try
@vIsWow64Process := GetProcAddress(vKernel32Handle, 'IsWow64Process');
if not Assigned(vIsWow64Process) then
Exit;

vIsWow64Process(GetCurrentProcess, vIsWow64);
if vIsWow64 then
Result := 'Sistema operacional Windows 64 Bits'
else
Result := 'Sistema operacional Windows 32 Bits';
finally
FreeLibrary(vKernel32Handle);
end;
end;
Responder

Gostei + 0

11/07/2014

Bhawan Junior

Colei o código errado, me perdoe, segue o correto, link e alteração para a minha necessidade!

{http://www.activedelphi.com.br/forum/viewtopic.php?t=76245&sid=a2a86b182152a6d9af469ee504ef3b42}


class function TRegras_iCloud.MOL_Plataforma: String;
begin
Result:='Software '+{$IFDEF WIN32} '32'{$ELSE} '64' {$ENDIF} + ' Bits'
end;

Me perdoe!!! Espero que ajude.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar