Ir para conteúdo
Fórum Script Brasil
  • 0

Dll


slipknot

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

Sim, se ela for do tipo ActiveX (gerada pelo próprio VB) você pode fazer:

dim obj as object

set obj = createobject("meuprojeto.minhaclasse")

Onde "meuprojeto" é o nome que você deu ao projeto da DLL e "minhaclasse" é o nome que você deu a classe.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

ah beleza...vl ae graymalkin...

mas e se o projeto estiver em outro nivel de diretorio??? não importa????

testei...

fiz assim para gerar minha DLL..

adicionei um novo projeto ACTIVEX DLL

coloquei a programação dele assim..

Option Explicit

Private Sub OnFormError(ByVal FormActive As Form, _
           ByVal ErrorNumber As Integer, ByRef ErrorDecrpt As String, _
           ByRef DirErrorPic As String, ByVal LabelDecrpt As Label, _
           ByVal ImageBox As Image)
           
    FormActive.Show
    FormActive.Caption = "ERRO NÃO PREVISTO NÚMERO: " & Str(ErrorNumber)
    LabelDecrpt.Caption = ErrorDecrpt
    ImageBox.Picture = LoadPicture(DirErrorPic)
    
End Sub
PS: Tentei colocar como PUBLIC SUB mas não dexa... dai compilei ela para DLL num diretorio("FormError.dll")...e salvei o projeto dela em outro direotrio.("FormError.vbp").. entaum, no meu programa instanciei ela assim no modulo...
Global dllFormError As Object
e no Form_Activate do MDI coloquei assim
Private Sub MDIForm_Activate()
    'Setando DLL geradora do form de erros
    Set dllFormError = CreateObject("FormError.FormError")
    '---------------------------------------------------
End Sub

só q da erro dizendo q não existe minha função!!!

csoh mais uma duvida.....dps q finalizar meu projeto eu tenho q setar o objeto como NOTHING???

exemplo... "set obj = Nothings" ...sen OBJ minha dll..

vlw..

Link para o comentário
Compartilhar em outros sites

  • 0

Não, não importa o diretório porque você não específica o arquivo DLL diretamente, mas sim a classe.

Sim, a função não existirá quando você tentar utilizá-la em uma instância do objeto, justamente porque está definida como PRIVATE. Ela tem que PUBLIC para ser vista na instância. Todavia você não poderá defini-la como PUBLIC utilizando argumentos do tipo FORM, LABEL, IMAGE, etc. Somente os tipos básicos são aceitos (String, Integer, Long, Byte, etc.).

Não sei se é realmente necessário atribuir Nothing à variável, já que a mesma é destruída quando o programa é finalizado (no caso das globais) ou quando o procedimento é finalizado (no caso das locais). De qualquer forma, não fará mal algum atribuir Nothing à variável.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

instanciei asim

no modulo

Global objMsgDLL As Object
no Form_Activate do MDI FORM
Set objMsgDLL = CreateObject("vbpMensagens.clsMsg")
e para chamar a minha função usei
MostrarMsg frmMsg, 1, Err.Number, Err.Description, _
                   frmMsg.lblErrorDecrpt, frmMsg.lblTit, frmMsg.imgErrorPic, _
                   App.Path & "\IMAGES\ERRORS\errCritical.jpg"

mas fala q a sub nauk existe...coloquei ela como PUBLIC SUB e os objetos FORM, LABEL, etc...dexei td como OBJECT e eaceitou normalmente na hora de compilar...ficou ateh azulzinhu...hehehe

mas não tah dando certo..

vlw ..=]

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...