| |
Tópicos de Win32 para Programadores |
 |
Este curso aborda diversos tópicos da API Win32, e destina-se a programadores experientes com bons conhecimentos de linguagem C e que desejam utilizar a API Win32 para desenvolver aplicações mais sofisticadas. Este curso aborda aspectos não visuais da API Win32. |
|
Pré-requisitos |
Sólidos conhecimentos de programação, experiência mínima de 1 ano com programação em linguagem C, desejável C++, desejável experiência prévia com programação para Windows ou MFC. |
 |
Formato de aula |
Apresentação de conceitos com slides ou transparências, intercalados com a execução de laboratórios a cada tópico, explorando a prática em aula (“hands-on programming”). |
 |
Carga horária |
Carga horária total: 30 horas |
 |
Material recebido |
Apostila contendo material escrito sobre os tópicos do curso, listas de exercícios e correções. |
 |
Custo |
O custo por aluno é de R$ 790,00 sendo
turmas fechadas para um mínimo de 6 alunos e máximo de 15. Este valor já inclui o material (apostila). |
 |
Turmas, datas e horários |
Este curso é ministrado apenas para turmas fechadas por empresas ou grupos de profissionais, as aulas são
ministradas a noite e aos sábados. |
 |
|
|
Conteúdo |
 |
Introdução |
· Apresentação |
· Padrões, Win32, sistemas abertos |
· Princípios da Win32 |
· Overview do Visual C++ |
Representações de strings |
· C-Style |
· MBCS |
· UNICODE |
· Convertendo ANSI x UNICODE |
· Suporte do Visual C++ e wrappers |
DLLs |
· Introdução |
· DLL entry point |
· Exportando funções com arquivos .def |
· Exportando e importando funções com __declspec |
· Linkedição com bibliotecas de exportação |
· Linkedição dinâmica |
· Compartilhamento de memória |
· C e C++ decorated names |
· Calling conventions |
· Criando DLLs no Visual C++ |
· Chamando DLLs no Visual Basic |
· Depurando DLLs |
· Shared-memory em DLLs |
· Ferramentas de apoio |
· Mais sobre DLLs |
Multithreading |
· Introdução |
· Multitarefa e Multithreading |
· Context Switching |
· Threads x Processos |
· Porquê usar Threads |
· Criando Threads |
· Finalizando Threads |
· Suspendendo e retornando Threads |
· Prioridade de Threads e Processos |
· Integridade de dados |
· Armadilhas comuns em aplicações Multithreading |
· Potenciais desvantagens em aplicações Multithreading |
· Aguardando o término de uma thread |
· Aguardando o término de múltiplas threads |
· TLS: Thread Local Storage |
· Fibers |
· Multithreaded C Run-Time Library |
· O modelo Boss-Worker |
Sincronizando Threads e Processos |
· Objetos de sincronismo |
· Deadlocks |
· Eventos |
· Seções Críticas |
· Sinalizações |
· Mutexes |
· Semáforos |
· Waitable Timers |
· Exemplo: objeto fila |
· Impactos na performance |
· Dicas gerais de projeto |
Comunicação Interprocessos |
· Introdução |
· Clipboard |
· DDE |
· WM_COPYDATA |
· Shared Memory |
· Mailslots |
· Named Pipes |
· Sockets |
Winsock |
· Definição |
· Tipos de sockets |
· Utilizando a Winsock no Visual C++ |
· A estrutura sockaddr_in |
· Byte-ordering: htons, ntohs, htonl, ntohl |
· Parte I: Programação TCP |
· Construindo um socket server: bind, listen, accept |
· Enviando e recebendo dados |
· Construindo um socket client: connect() |
· Estratégias de I/O para servidores |
· Parte II: Programação UDP |
· Programando um server UDP |
· Enviando e recebendo dados por UDP |
· Berkley versus Windows sockets |
Structured Exception Handling (SEH) |
· Introdução |
· Blocos __try e __except |
· Exception Filters |
· Exception Codes |
· Exception Handling Sequence |
· User generated exceptions |
· SEH e C++ exception handling |
· Console Control Handlers |
Serviços |
· Escrevendo serviços NT - Overview |
· A função main() |
· ServiceMain() |
· O Service Control Handler |
· Escrevendo um service "wrapper" |
· Gerenciando serviços NT |
· Logando eventos no Event Vewer |
· Dicas sobre depuração de serviços |
I/O Assíncrono |
· Overview da Win32 Asynchronous I/O |
· Overlapped I/O |
· A estrutura OVERLAPPED |
· Conseqüências do Overlapped I/O |
· Exemplo: conversão de arquivos com Overlapped I/O |
· Extended I/O |
· Exemplo: conversão de arquivos com Extended I/O |
· I/O Completion Ports |
Introdução ao COM e ATL |
· Componentes de Software |
· O modelo COM - Component Object Model |
· Interfaces |
· GUIDs, CLSIDs e IIDs |
· ProgIDs |
· A interface IUnknown |
· Ciclo de vida |
· COM Object Servers |
· Módulos, classes de objetos e interfaces |
· Registro |
· Virtual Tables - VTBLs |
· Templates |
· Criando um projeto ATL no Visual C++ |
· Métodos, propriedades e eventos |
|