jaumDoDelphi Postado Maio 5, 2010 Denunciar Share Postado Maio 5, 2010 (editado) Ola amigos, estou utilizando o RAD STUDIO Delphi 2010 para estudo.Estava verificando o arquivo compilado "EXE" no editor de texto NOTEPAD++ para ver porque ele ficou tão grandecomparado ao Delphi 7 q na epoca q eu fiz os cursos em 2002 os arquivos "EXE" tinha o tamanho de 300kbjá no Delphi 2010 ele tem 900kb.E notei q há um codigo bem no final do arquivo, axo que esta em ASSEMBLY<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="CodeGear RAD Studio" version="12.3.4567.89010" processorArchitecture="*"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="1234567894ddc2ab" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo></assembly>1 - Para que serve este CODIGO FONTE?2 - Porque o EXE do delphi2010 esta tão grande?3 - Como minha licença TRIAL já vai expirar, gostaria de saber se LAZARUS e uma boa escolha?orbigado a todos! Editado Maio 17, 2010 por jaumDoDelphi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Maio 14, 2010 Denunciar Share Postado Maio 14, 2010 (editado) opa1 - Para que serve este CODIGO FONTE?Isto é um manifesto...Ai você define propriedades como os privilegios que seu Software precisa no sistema, por exemplo, se necessita de privilégios administrativos...<requestedExecutionLevel level="asInvoker" uiAccess="false"/>Se você mudar o level para "requireAdministrator" seu programa vai ficar no icone aquele escudo do UAC do Vista/7 e quando executar vai pedir "elevação de usuário"... aquela janela chata que fica pedindo "Yes / No", "Allow / Not Allow", etc...E outras propriedades... tambem não sei muito a respeito, mas o google deve saber se voce procurar por "manifesto" ou em ingles "application manifest"Só tem funcionalidade no Windows Vista pra cima... vai ser muito útil futuramente... pode ver que envolve propriedades de Linguagem e tal, arquitetura do processador...Vai ser muito util ainda, mas atualmente acredito que pra maioria não rs2 - Porque o EXE do delphi2010 esta tão grande?Porque o Delphi 2010 vem como padrão UNICODE e todos os outros Delphi vinha como padrão ANSIO Windows desde versões acho que o XP ou até mesmo o 98 tinha suporte a UNICODE, por isso na API do Windows nós vemos tipo NomedaFuncaoW e NomedaFuncaoAIsto quer dizer W = WideString (Unicode) e A = ANSIUnicode é uma tabela de caracteres com suporte a idiomas asiaticos, tipo aquelas letras estranhas da Russia, China, Japão, Filipinas, Arábia, sabe?Então, o que faz seu executavel ficar grande é que ANSI usa 1 byte por caracter e Unicode 2, resumindo, dobre o tamanho do Executavel na parte da Tabela de CaracteresO Delphi 2010 não possibilita mudar pra ANSI e usa como padrão a API do Windows W como explicado acimaPor isso eu não uso o Delphi 2010, primeiro porque meu programa no máximo seria em Inglês e Inglês é ANSI, segundo porque meu programa jamais vai ter suporte a estas linguas e terceiro porque meu executavel fica muito grande, meu projeto em si pra ser mais sincero e quarto porque não tem como dar um switch pra ANSI rsIsto é um dos motivos que muitos não estão adotando o Delphi 2010... acredito que por tantas reclamações, a proxima versão do Delphi vai ter alguma diretiva de compilação para deixar em modo ANSI...Detalhe, passar códigos já antigos pra suporte Unicode não é nada fácil... Char tem que ser AnsiChar porque no 2010 é WideChar e da incompatibilidade... String tem que dar typecast maior rolo...Ah só um detalhe... nem que seja milésimos de segundo, um executável em Unicode é mais rápido...Porque o Windows a partir do Vista se não me engano, ou XP não sei, processa em Unicode e quando é ANSI ele faz o seguinteANSIEXE ---> Função ANSI ---> Transforma pra Unicode ---> Processa como Unicode ---> Volta pra ANSI ---> EXEUnicodeEXE ---> Função Unicode ---> Processa ---> EXELittle bit more fast :)3 - Como minha licença TRIAL já vai expirar, gostaria de saber se LAZARUS e uma boa escolha?Depende, Lazarus é bom se voce não precisa de muita coisa tipo, componentes avançados que normalmente não existem para Lazarus...Se seu software é coisa tranquila tipo Banco de Dados e tal, coisas do tipo, teste o Lazarus porque eu testei e é praticamente um Delphi...Só como falei mesmo, componentes especificos não acha pra ele, mas acha "paralelo" Editado Maio 15, 2010 por Churc Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jaumDoDelphi Postado Maio 17, 2010 Autor Denunciar Share Postado Maio 17, 2010 ola Churc, gostei muito da sua explicação!Esta bem detalhada.1 - Então aquele codigo no final do aplicativo serve para as diretivas do VISTA/7estou programando no meu notebook com o windows VISTA x86 por isso realmente é muito importante as funções do UAC.O PC de casa esta com o Win7 home premium x64, e os da empresa esta com winXP x86, o meu programa é bem simples dai roda bem nos 3 sistemas OS.2 - A Churc, isso explica o tamanho dos aplicativos no Delphi2010, um exemplo e alguns programas que eu fiz em 2002 no delphi7. viajei a China para fechar alguns contratos quando execultava ele em windows XP Chines as palavras com "Execução" exibia "Execu*$%o" etc... apareciam ideogramas Chinesses. quando eu voltei para China semana passada os programa compilados em Delphi 2010, aparecem as letras normais.3 - Realmente acho q vou tentar utilizar o LAZARUS, meus programa são bem simples Utilizo 3 que fiz a varios anos atraz e hj voltei a programa porque estou com 1 tempinho livre. Os programas. Agenda Telefonica e Compromisso, Cadastro de DVDs e um programa simples de criptografia de TEXTO.com banco de dados MS ACCESS nada muito complicado como SQL ou INTERBASE que necessitam de servidores.Realmente agradeço muito pela sua Explicação! obrigado Churc e a todos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jaumDoDelphi
Ola amigos, estou utilizando o RAD STUDIO Delphi 2010 para estudo.
Estava verificando o arquivo compilado "EXE" no editor de texto NOTEPAD++ para ver porque ele ficou tão grande
comparado ao Delphi 7 q na epoca q eu fiz os cursos em 2002 os arquivos "EXE" tinha o tamanho de 300kb
já no Delphi 2010 ele tem 900kb.
E notei q há um codigo bem no final do arquivo, axo que esta em ASSEMBLY
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="CodeGear RAD Studio"
version="12.3.4567.89010"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="1234567894ddc2ab"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
1 - Para que serve este CODIGO FONTE?
2 - Porque o EXE do delphi2010 esta tão grande?
3 - Como minha licença TRIAL já vai expirar, gostaria de saber se LAZARUS e uma boa escolha?
orbigado a todos!
Editado por jaumDoDelphiLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.