Ao usar controles de terceiros na programação VB, o programa deve ser capaz de localizar os controles de terceiros usados no diretório do sistema ou no diretório do programa. Geralmente existem dois métodos: um é transformar o controle e o programa em um pacote compactado e distribuí-lo. A desvantagem disso é que pode causar a perda do arquivo de controle durante o processo de propagação do programa. A segunda é criar um programa de instalação. A desvantagem é que o processo de produção é complicado. Este artigo descreve como salvar controles de terceiros no programa na forma de arquivos de recursos personalizados. Após a execução do programa e antes de usar os controles, os controles usados são gerados no diretório do programa para concluir o shell dos controles do executável. arquivo.
As etapas específicas são as seguintes:
Passo 1: Copie o controle a ser usado para o diretório do projeto atual, clique com o botão direito no controle, selecione Propriedades e anote o tamanho do arquivo. Observe que você deve anotar o número específico em bytes, e não quantos K, para fins de programação.
Passo 2: Consulte e use o controle normalmente.
Etapa 3: Crie um novo arquivo de recursos e adicione-o ao projeto. Adicione o controle de terceiros usado como recurso personalizado (CUSTOM) no editor de arquivo de recursos. Se vários controles forem usados, adicione-os aos itens de recursos 101, 102... no arquivo de recursos respectivamente, e o código de shell também deverá ser modificado de acordo.
Etapa 4: Escreva o código de shell de controle para ler os dados do arquivo de recurso e gerar o controle no diretório atual do programa.
O código é o seguinte:
Private Const OCXSIZE = 57344 'O tamanho do controle a ser gerado é 57344Byte e o nome é CoolToolBar.ocx
Subprincipal()
Dim Ocx() As Byte 'OCX é um array do tipo Btye
Escureça o contador enquanto
Ocx = LoadResData(101, CUSTOM) 'Lê o recurso nº 101 no recurso personalizado no array OCX
'Observe que há um erro nas instruções para carregar recursos personalizados na ajuda da Microsoft. O recurso personalizado é identificado como CUSTOM em vez do número 10 mencionado na ajuda.
If Right(App.Path, 1) = ($%$43%^#ASD#2@$#f$%^) Then 'Leia o caminho do programa, determine se é o diretório raiz e processe-o separadamente
'O programa está no diretório raiz
If Dir(App.Path & CoolToolBar.ocx) = Then 'Existe um controle no caminho do programa. Caso contrário, o controle será gerado?
'Escreve (gera) o controle (CoolToolBar.ocx) em modo binário no diretório onde o programa principal está localizado
Abra App.Path & CoolToolBar.ocx para binário como nº 1
For Counter = 0 To OCXSIZE - 1 'Observe que por começar em 0 Byte, o tamanho do arquivo - 1Byte é o valor final
Coloque #1, , Ocx (Contador)
Próximo contador
Fechar #1
Terminar se
Outro
'O programa não está no diretório raiz
If Dir(App.Path & /CoolToolBar.ocx) = Then 'Existe um controle no caminho do programa. Caso contrário, o controle será gerado?
'Escreve (gera) o controle (CoolToolBar.ocx) em modo binário no diretório onde o programa principal está localizado
Abra App.Path & /CoolToolBar.ocx para binário como nº 1
For Counter = 0 To OCXSIZE - 1 'Observe que por começar em 0 Byte, o tamanho do arquivo - 1Byte é o valor final
Coloque #1, , Ocx (Contador)
Próximo contador
Fechar #1
Terminar se
Terminar se
Form1.Visible = True 'Os controles usados no programa principal foram gerados, exibe o formulário principal e entra no programa principal.
Finalizar sub
Nota: Adicione o código acima ao projeto como um módulo e selecione o objeto de inicialização como Sub Main nas configurações da propriedade project-project, que é o código de shell acima. Em seguida, compile e gere um arquivo EXE, copie o arquivo EXE para outros computadores que não possuem o controle instalado e execute-o para verificar se a portabilidade do controle foi alcançada.