slipknot Postado Novembro 28, 2003 Denunciar Share Postado Novembro 28, 2003 tem como eu referenciar uma DLL que criei via código???obrigado.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 29, 2003 Denunciar Share Postado Novembro 29, 2003 Sim, se ela for do tipo ActiveX (gerada pelo próprio VB) você pode fazer:dim obj as objectset 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 slipknot Postado Novembro 29, 2003 Autor Denunciar Share Postado Novembro 29, 2003 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 DLLcoloquei 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 Subsó 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.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 29, 2003 Denunciar Share Postado Novembro 29, 2003 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 slipknot Postado Novembro 30, 2003 Autor Denunciar Share Postado Novembro 30, 2003 o jeito q instanciei a dll tah certo????quando você diz CLASSSE...você quer dizer o nome da minha ROTINA ???vlw.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 30, 2003 Denunciar Share Postado Novembro 30, 2003 Não, é o nome da classe mesmo. Quando você cria um projeto novo de ActiveX DLL o nome do projeto fica "Project1" e o nome da classe fica "Class1".ok?Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 slipknot Postado Novembro 30, 2003 Autor Denunciar Share Postado Novembro 30, 2003 instanciei asimno moduloGlobal 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...hehehemas não tah dando certo..vlw ..=] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Novembro 30, 2003 Denunciar Share Postado Novembro 30, 2003 Tá quase certo, você só esqueceu de colocar o objeto na frente da função na hora de chamar. Tem que ser:objMsgDLL.MostrarMsgAo invés de MostrarMsg sozinho.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 slipknot Postado Novembro 30, 2003 Autor Denunciar Share Postado Novembro 30, 2003 cara eu lembro q fiz isso,.....mas vou testar denovo,...heheheh...vamo ve se agora consigo...=]vlw cara... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
slipknot
tem como eu referenciar uma DLL que criei via código???
obrigado..
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
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.