Artigo Clube Delphi Edição 11 - API’s em desuso e versões do Delphi

Artigo da Revista Clube Delphi Edição 11.

Esse artigo faz parte da revista Clube Delphi edição 11. Clique aqui para ler todos os artigos desta edição



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 :)

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados