Artigo Clube Delphi Edição 11 - API’s em desuso e versões do Delphi
Artigo da Revista Clube Delphi Edição 11.
Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.
API’s em desuso e versões do Delphi
Quanto mais estudo o Universo das funções APIs, percebo claramente que o emprego da palavra Universo não se trata de uma metáfora. Quando terminei meu livro, fiquei com uma sensação de obra incompleta. O fato é que um livro reunindo todas as APIs seria uma obra concorrente da Bíblia em número de páginas. E, provavelmente, não teria sucesso absoluto, pois existem milhares de APIs não documentadas, que não conseguiria ter ciência.
Algumas funções APIs do Win16 não existem mais no Win32, outras são consideradas obsoletas e continuam compiláveis apenas por questões de compatibilidade. Existem funções APIs que mudaram os tipos de parâmetros ou de resultado. E onde está a documentação??? Temos apenas a ajuda on line do API Win32, onde um conteúdo específico não está centralizado. Em uma rápida pesquisa, encontrei as funções listadas abaixo:
Função do Win16Substituta para o Win32
OpenCommCreateFile
CloseCommCloseHandle
FlashCommPurgeComm
GetCommErrorClearCommError
ReadCommReadFile
WriteCommWriteFile
DlgDirSelectDlgDirSelectEx
GetBitmapDimension GetBitmapDimensionEx
SetBitmapDimension SetBitmapDimensionEx
Talvez esta lista não corresponda a 10% da realidade. Existem ainda as que não possuem correspondência, ou seja, não há função similar substituta no Win32:
Funções APIs da Win16 em desuso:
FreeSelectorAllocSelector
UnGetCommCharChangeSelector
GetCodeInfoGlobalDOSAlloc
GlobalDOSFreeValidateCodeSegments
ValidateFreeSegmentsGetModuleUsage
AccessResourceAllocResource
SetResourceHandlerGetCodeHandle
LockDataUnlockData
GlobalNotifyDefineHandleTable
MakeProcInstanceFreeProcInstance
Não são apenas estas. Mas já é o suficiente para que você pesquise se uma incompatibilidade de compilação ou funcionamento é derivada deste fato.Aproveitando, existem também maneiras de escrever linhas de código compatíveis com diferentes versões do Delphi:
{$IFDEF WINDOWS}
// Coloque aqui se código para Windows 3.x
{$ENDIF}
{$IFDEF WIN32}
// Coloque aqui seu código para Windows 9x e NT
{$ENDIF}
E para diferentes versões do Delphi, seguimos o mesmo príncipio:
{$IFDEF VER80}
// Código do Delphi 1
{$ENDIF}
{$IFDEF VER90}
// Código do Delphi 2
{$ENDIF}
{$IFDEF VER100}
// Código do Delphi 3
{$ENDIF}
{$IFDEF VER120}
// Código para Delphi 4
{$ENDIF}
{$IFDEF VER130}
// Código para Delphi 5
{$ENDIF}
Simples quando se conhece, não acham? Um comentário interessante: percebam que o Delphi 1 é a versão 8.0 do Turbo Pascal, comprovado em seu parâmetro para compilação :)
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo