Atualizado em 09/11/2019
Este é um projeto antigo... Entrei em contato com o VB6 quando estava no ensino fundamental e escrevi muitos programas, um após o outro. Durante as férias de verão, quando entrei no ensino médio, parecia que comecei este projeto com a ideia de "Vou aprender um novo idioma e, finalmente, escrever um plug-in para VB6 usando VB como despedida" ( parece que estou no ensino médio agora hhh). Porém, não é o “trabalho de despedida” que eu esperava, mas me acompanhou ao longo dos três anos do ensino médio. Desde o “pequeno plug-in” inicial, gradualmente se expandiu para um grande projeto. pode ser o maior projeto que já escrevi. É um projeto, certo?
Microsoft Visual Basic 6.0, uma IDE/linguagem mais antiga que eu Quando escrevi este programa, o VB6 começou a desaparecer da vista das pessoas e agora provavelmente só existe na memória. Quando eu estava no último ano do ensino médio, percebi que não iria mais manter esse projeto, então aproveitei para melhorar a documentação e liberei o programa e o código-fonte no Baidu Tieba VB Bar. Como existem poucos usuários de VB, ele não atraiu muita atenção, e estou ciente disso.
Olhando para trás agora, aprendi muito com este projeto. Embora estivesse explorando por conta própria, ao longo dos anos, embora não fosse um estudo sistemático, ainda aprendi muitos conhecimentos, como:
Agora este programa interrompeu a manutenção e não irei fornecer suporte técnico (quase me esqueci disso hhh). O programa tem muitos bugs e o estilo de codificação não é bom. Considerando que quase ninguém usa VB6 agora, este Addin em si não tem valor prático, mas se alguns dos pontos técnicos nele contidos puderem fornecer uma referência, então pode-se considerar que ele exerceu seu valor :)
Develop/iCode 开发者指南.docx
é um documento que escrevi ao lançar o código-fonte. Alguns dos conteúdos são organizados da seguinte forma.
O programa complementar VB6 (Addin) é um plug-in que usa a interface fornecida pelo VB para aprimorar o IDE para implementar funções específicas. O corpo principal do projeto é uma DLL ActiveX, que chama componentes específicos (Microsoft Add-In Designer, etc.). Esses componentes fornecerão interfaces limitadas para controlar o comportamento do IDE. Gancho, modificação de memória, etc. também são usados neste projeto. Para uma visão geral da interface e do processo, consulte o documento docx.
Ferramentas de aprimoramento de compilação. Substitua automaticamente ícones de arquivos EXE e suporte ícones de alta definição; insira automaticamente arquivos de manifesto para realizar funções como aplicação automática de permissões UAC e controles universais seguindo temas do sistema.
Adicione uma barra de guias ao espaço de trabalho do IDE para facilitar a alternância entre janelas.
Colete métodos, constantes e tipos da API WIN32 e GDI+ e insira declarações automaticamente.
Ferramenta otimizada de organização de recuo de código com análise simples de erros de código.
Ferramenta de estatísticas de código detalhada e abrangente.
A correspondência de cores IDE pode ser personalizada modificando a memória, rompendo a monótona correspondência de cores do VB e vem com funções de importação e exportação de programas.
Melhore a eficiência.
Redistribua os controles da janela do arquivo.
A arquitetura do iCode foi modificada várias vezes. Agora, cada projeto de componente é independente e o iniciador (incluindo o Connect) é independente de outro projeto. O projeto do iniciador (chamado A) faz referência ao projeto do componente (chamado B). módulo de classe A interface implementa a função. O código principal está escrito em B. A fornece principalmente instâncias IDE e informações de Hook.
A vantagem disso é que facilita o transplante. O iCode é composto de muitos componentes. Se todos forem escritos em um projeto, será confuso e inconveniente para depuração. Você sabe, devido ao uso de Hooks, etc., o iCode geralmente precisa ser compilado e depois testado. Compilar outros componentes desnecessários desperdiçará muito tempo. Usando esta arquitetura, primeiro escreva um projeto de componente + um projeto de inicialização. Após a conclusão do teste, o inicializador real do iCode fará referência ao projeto do componente. também pode iniciá-lo através da depuração original.
Além disso, alguns métodos públicos (principalmente no iFunction) são mantidos sincronizados usando o mesmo arquivo de código.
Uma imagem aleatória:
Develop/iCode.chm
Develop/iCode 开发者指南.docx
contém mais detalhes durante o desenvolvimento para referência.