C ++ Programação/Code/API/Win32 - Wikibooks, livros abertos para um mundo aberto (2024)

Conteúdo

  • 1 API do Windows 32
    • 1.1 Variáveis e Win32
    • 1.2 Bibliotecas Windows (DLLs)
    • 1.3 Convenções de API e funções da API Win32 (por foco)
      • 1.3.1 Tempo
      • 1.3.2 Sistema de arquivos
      • 1.3.3 Rede
    • 1.4 Recursos

A API do Windows 32[[editar|Editar fonte]

API WIN32é um conjunto de funções definidas noOh, em outras palavras, é oAPI do Windows, este é o nome dado porMicrosoftpara o conjunto principal deInterfaces de programação de aplicativosDisponível noMicrosoft Windows sistemas operacionais.Ele foi projetado para uso porC/C ++programas e é a maneira mais direta de interagir com umjanelassistema paraAplicações de Software.Acesso de nível inferior a umjanelassistema, principalmente necessário paradrivers de dispositivo, é fornecido peloModelo de driver do Windowsnas versões atuais dejanelas.

Pode -se obter mais informações sobre oAPIe apoio deMicrosoftpor si só, usando a biblioteca MSDN (http://msdn.microsoft.com/) essencialmente um recurso para desenvolvedores usando ferramentas, produtos e tecnologias da Microsoft.Ele contém uma recompensa de informações de programação técnica, incluindo código de amostra, documentação, artigos técnicos e guias de referência.Você também pode conferir WikibooksProgramação do WindowsReserve algumas informações mais detalhadas que vão além do escopo deste livro.

Akit de desenvolvimento de software(SDK) está disponível parajanelas, que fornece documentação e ferramentas para permitir que os desenvolvedores criem software usando oAPI do Windowse associadojanelastecnologias. (http://www.microsoft.com/downloads/)

História

A API do Windows sempre expôs grande parte da estrutura subjacente dos vários sistemas do Windows para os quais foi criado para o programador.Isso teve a vantagem de oferecer aos programadores do Windows uma grande flexibilidade e energia sobre seus aplicativos.No entanto, também deu aos aplicativos do Windows uma grande responsabilidade em lidar com várias operações de baixo nível, às vezes tediosas, associadas a umInterface gráfica do usuário.

Charles Petzold, escritor de vários livros de API do Windows bem lido, disse:"O programa Hello-World original no SDK do Windows 1.0 foi um pouco escândalo. Olá.C tinha cerca de 150 linhas de comprimento, e o script de recurso Hello.rc tinha mais 20 linhas. (...) Veterano COs programadores geralmente se enrolavam em horror ou risos ao encontrar o programa Windows Hello-World ".. AHello World Programé um exemplo de programação frequentemente usado, geralmente projetado para mostrar a aplicação mais fácil possível em um sistema que pode realmente fazer algo (ou seja, imprimir uma linha que diz "Hello World").

Ao longo dos anos, foram feitas várias mudanças e adições ao sistema operacional do Windows, e a API do Windows mudou e cresceu para refletir isso.A API do Windows paraWindows 1.0suportado menos de 450chamadas de função, onde nas versões modernas da API do Windows existem milhares.Em geral, a interface permaneceu bastante consistente, e um aplicativo antigo do Windows 1.0 ainda parecerá familiar para um programador que está acostumado com a moderna API do Windows.

Uma grande ênfase foi colocada porMicrosoftna manutenção do softwarecompatibilidade com versões anteriores.Para conseguir isso, a Microsoft às vezes chegava ao software de suporte que estava usando a API de maneira ilegal sem documentos ou até (programaticamente).Raymond Chen, um desenvolvedor da Microsoft que trabalha na API do Windows, disse que ele"Provavelmente poderia escrever por meses apenas sobre coisas ruins que os aplicativos fazem e o que tivemos que fazer para fazê -los trabalhar novamente (geralmente apesar de si mesmos). É por isso que fico particularmente furioso quando as pessoas acusam a Microsoft de quebrar as aplicações maliciosas durante as atualizações do OSSe qualquer aplicativo não foi executado no Windows 95, eu o fiz como uma falha pessoal. "

Variáveis eE isso[[editar|Editar fonte]

E issoUtiliza um conjunto estendido de tipos de dados, usando o mecanismo typedef de C Isso inclui:

  • Byte -não assinadoInteiro de 8 bits.
  • DWORD -32 BITnão assinadoInteiro.
  • Longo - Inteiro assinado de 32 bits.
  • Lpdword - ponteiro de 32 bits para dword.
  • LPCSTR - ponteiro de 32 bits para string de caracteres constantes.
  • LPSTR -32 Ponteiro de bits para a sequência de caracteres.
  • Uint - 32 bitsnão assinadoint.
  • Palavra - 16 bitsnão assinadoint.
  • Handle - ponteiro opaco para dados do sistema.

É claro que os tipos de dados padrão também estão disponíveis ao programar comAPI WIN32.

Bibliotecas Windows (DLLs)[[editar|Editar fonte]

No Windows, o código da biblioteca existe em vários formulários e pode ser acessado de várias maneiras.

Normalmente, a única coisa necessária é incluir no arquivo de cabeçalho apropriado no código -fonte das informações ao compilador e a ligação ao arquivo .lib ocorrerá durante a fase de ligação.

Este arquivo .lib contém código que deve ser estaticamente vinculado ao código de objeto compilado contém código para permitir o acesso a um link dinamicamente a uma biblioteca binária (.dll) no sistema.

Também é possível gerar uma biblioteca binária .dll dentro de C ++, incluindo informações apropriadas, como uma tabela de importação/exportação ao compilar e vincular.

DLLs representam bibliotecas de links dinâmicos, o arquivo básico de funções usadas em alguns programas.Muitos IDEs C ++ mais recentes, como o Dev-CPP, suportam essas bibliotecas.

As bibliotecas comuns no Windows incluem as fornecidas pelo Kit de Desenvolvimento de Software da Plataforma, pela Microsoft Foundation Class e uma interface C ++ para os conjuntos de estruturas .NET.

Embora não use estritamente como código da biblioteca, o SDK da plataforma e outras bibliotecas fornecem um conjunto de interfaces padronizadas para objetos acessíveis através doModelo de objeto componenteimplementado como parte do Windows.

C ++ Programação/Code/API/Win32 - Wikibooks, livros abertos para um mundo aberto (1)

Pendência:
AdicionarRegistro, Assim,IO (entrada/saída), Assim,Segurança, Assim,Processos e threads

Convenções da API e funções da API Win32 (por foco)[[editar|Editar fonte]

Tempo[[editar|Editar fonte]

A medição de tempo deve vir do sistema operacional em relação ao hardware em que é executado, infelizmente a maioria dos computadores não possui um relógio de tempo de alta precisão e alta precisão padrão que também é rápido em acessar.

Funções de tempo do MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/time_functions.asp)

Performance da função do timer (http://developer.nvidia.com/object/timer_function_performance.html)

GetTickCountPossui uma precisão (dependente da taxa de tick tick tick) de um milissegundo, sua precisão normalmente dentro de um erro esperado de 10 a 55ms, o melhor é que ele aumenta a uma taxa constante.(WaitForsingleObjectusa o mesmo timer).

GetSystemtimEasFilETimetem uma precisão de 100 nanossegundos, sua precisão é semelhante aGetTickCount.

QueryPerformAncecounterpode ser mais lento para obter, mas tem maior precisão, usa o HAL (com alguma ajuda do ACPI) que um problema é que ele pode viajar de volta no tempo nos PCs em excesso devido ao lixo no LSBS, observe que as funções falham, a menos queO grande_Integer fornecido está alinhado.

O valor do contador de desempenho pode inesperadamente avançar (http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q274323&)

TimeGetTime(via winmm.dll) tem uma precisão de ~ 5ms.

Sistema de arquivo[[editar|Editar fonte]

MandearirectoryPathExists(Via Image Ajuda Biblioteca - Imaghlp.dll,#Paragama comentário (lib, "símbolo.lib"), Assim,#include ) Cria diretórios, só útil para criar/forçar a existência de uma determinada árvore DIR ou vários diretórios, ou se o vinculação já estiver presente, observe que é um único rosqueado.

C ++ Programação/Code/API/Win32 - Wikibooks, livros abertos para um mundo aberto (2)

Pendência:
AdicionarNoções básicas na construção de "janelas", Assim,Manuseio de eventos de janela, Assim,Recursos

Rede[[editar|Editar fonte]

Os aplicativos de rede geralmente são incorporados em C ++ no Windows, utilizando as funções da API Winsock.

Recursos[[editar|Editar fonte]

Os arquivos de recursos são talvez um dos elementos mais úteis incluídos na API Win32, eles são como programamos os menus, adicionamos ícones, fundos, música e muitos mais elementos esteticamente agradáveis aos nossos programas.Infelizmente, o uso no uso de arquivos de recursos de compilação é hoje para aqueles que usam o MS Visual Studio IDE (editor de recursos, compreensão da estrutura de recursos).

Observação:
Isso é semelhante à abordagem da Biblioteca QT ao lidar com elementos da GUI, mas, neste caso, a API de programação do sistema operacional possui suporte direto para o manuseio dos elementos de recursos.

Os recursos são definidos em um arquivo .rc (recurso c) e estão incluídos na fase de ligação da compilação.Os arquivos de recursos funcionam em mãos com um arquivo de cabeçalho (geralmente chamado de recurso.h) que carrega as definições de cada ID.

Por exemplo, um arquivo RC simples pode conter um menu:

/////////////// IDR_MYMENU MENUBEGIN POPUP "& FILE" BEGIN MENUITEM "& SOBRE", ID_FILE_ABOUR MENUITEM "E & XIT", ID_FILE_EXIT END POPUP "& EDIT" BEGIN ""Begin Menuitem" e visite o site de Lukem_95 ", id_link_website menuitem" g & oogle.com ", id_link_googleendendend //////////////////

E o arquivo H correspondente:

#define iDr_mymenu 9000#define id_file_exit 9001#define id_link_website 9002#define id_link_google 9003 #define id_file_about 9004
C ++ Programação/Code/API/Win32 - Wikibooks, livros abertos para um mundo aberto (2024)

References

Top Articles
Latest Posts
Article information

Author: Dean Jakubowski Ret

Last Updated:

Views: 5405

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Dean Jakubowski Ret

Birthday: 1996-05-10

Address: Apt. 425 4346 Santiago Islands, Shariside, AK 38830-1874

Phone: +96313309894162

Job: Legacy Sales Designer

Hobby: Baseball, Wood carving, Candle making, Jigsaw puzzles, Lacemaking, Parkour, Drawing

Introduction: My name is Dean Jakubowski Ret, I am a enthusiastic, friendly, homely, handsome, zealous, brainy, elegant person who loves writing and wants to share my knowledge and understanding with you.