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

Abrir e Editar arquivos .DLL em VB.NET


s.ono

Pergunta

Bom dia.

Me desculpem se a pergunta for idiota, sou nova na área da programação, mas alguém sabe como que eu poderia abrir um arquivo .DLL que foi criado pelo VB.NET?

Eu precisava editar o código dele.

Já tentei procurar programas para isso, ou clicar no botão direito > abrir com > Microsoft Visual Studio , mas sem sucesso. :(

Obrigada pela atenção.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Olha, não tem como fazer isso não. Depois que um código é compilado, sua única opção é utilizar de engenharia reversa para poder tentar remontar o código e fazer as alterações necessárias.

Como o .NET é uma linguagem gerenciada, o dll dela está em um formato chamado "IL" ou Linguagem Intermediária. Você pode utilizar um aplicativo chamado ildasm.exe que vem com o Visual Studio. Você terá acesso à IL da dll. Contúdo, se você não possuir conhecimento suficiente, isso não servirá de nada, pois a IL é um linguagem mais de baixo nível e mais dificil para humanos compreenderem.

Agora, o que exatamente você precisa modificar? Porque existem alternativas que talvez possam te ajudar sem que seja necessário refazer toda a dll, como sombreamento de membros.

Link para o comentário
Compartilhar em outros sites

  • 0
Olha, não tem como fazer isso não. Depois que um código é compilado, sua única opção é utilizar de engenharia reversa para poder tentar remontar o código e fazer as alterações necessárias.

Como o .NET é uma linguagem gerenciada, o dll dela está em um formato chamado "IL" ou Linguagem Intermediária. Você pode utilizar um aplicativo chamado ildasm.exe que vem com o Visual Studio. Você terá acesso à IL da dll. Contúdo, se você não possuir conhecimento suficiente, isso não servirá de nada, pois a IL é um linguagem mais de baixo nível e mais dificil para humanos compreenderem.

Agora, o que exatamente você precisa modificar? Porque existem alternativas que talvez possam te ajudar sem que seja necessário refazer toda a dll, como sombreamento de membros.

Hmmm

Entendi...

Obrigada pela ajuda. ^_^

Agora eu estou tentando fazer uma outra coisa.

Adicionei essa dll ao meu projeto, junto com o projeto que ele pertence. (add existing item).. Esse é um projeto pronto que a gente pegou pela internet.

Mas eu precisava abrir esse form do novo projeto(que está escrito em C#) a partir de um outro for(que esta escrito em VB.NET)

Tem como?

Desde já agradeço sua atenção.

Link para o comentário
Compartilhar em outros sites

  • 0
Mas os formulários tem que estar no mesmo projeto. Em projetos distintos, não tenho certeza, mas acho que não é possível.

Abraços...

Ish..

Não vou conseguir chamar ou passar valores de um form que está em projetos diferentes?

Eita nóis... agora complicou a coisa... XD

Eu achava que poderia... hehehe

Muito obrigada pela ajuda, quintelab!

Vou ver o que faço.

Link para o comentário
Compartilhar em outros sites

  • 0
Hmmm

Entendi...

Obrigada pela ajuda. ^_^

Agora eu estou tentando fazer uma outra coisa.

Adicionei essa dll ao meu projeto, junto com o projeto que ele pertence. (add existing item).. Esse é um projeto pronto que a gente pegou pela internet.

Mas eu precisava abrir esse form do novo projeto(que está escrito em C#) a partir de um outro for(que esta escrito em VB.NET)

Tem como?

Desde já agradeço sua atenção.

Isso está meio esquisito. Vocês estão apenas com o dll correto? Não possuem os arquivos .vb ou .cs. Se for o caso, você não deve adicionar ele ao seu projeto utilizando "add existing item". Utilize Add Reference.

Depois disso, você poderá utilizar o formulário do dll em seu projeto.

Algo como (Desculpe qualquer erro de escrita. Já faz uns 2 anos que só programo em C#):

Imports NomeDaDllExterna

private sub AbrirForm()

Dim FormularioExterno as new NomeDoFormulario
FormularioExterno.Show()

end sub

A não ser que o formulário que você quer utilizar do assembly externo foi qualificado como "privado" pelos desenvolvedores, não vejo problemas em utilizar o form. Mas não faz muito sentido, pois do que adianta você criar um dll com um formulário e publicá-lo, mas não permitir que ninguém o utilize :blink: hehehe

Editado por Lucas Phillip
Link para o comentário
Compartilhar em outros sites

  • 0
Hmmm

Entendi...

Obrigada pela ajuda. ^_^

Agora eu estou tentando fazer uma outra coisa.

Adicionei essa dll ao meu projeto, junto com o projeto que ele pertence. (add existing item).. Esse é um projeto pronto que a gente pegou pela internet.

Mas eu precisava abrir esse form do novo projeto(que está escrito em C#) a partir de um outro for(que esta escrito em VB.NET)

Tem como?

Desde já agradeço sua atenção.

Isso está meio esquisito. Vocês estão apenas com o dll correto? Não possuem os arquivos .vb ou .cs. Se for o caso, você não deve adicionar ele ao seu projeto utilizando "add existing item". Utilize Add Reference.

Depois disso, você poderá utilizar o formulário do dll em seu projeto.

Algo como (Desculpe qualquer erro de escrita. Já faz uns 2 anos que só programo em C#):

Imports NomeDaDllExterna

private sub AbrirForm()

Dim FormularioExterno as new NomeDoFormulario
FormularioExterno.Show()

end sub
A não ser que o formulário que você quer utilizar do assembly externo foi qualificado como "privado" pelos desenvolvedores, não vejo problemas em utilizar o form. Mas não faz muito sentido, pois do que adianta você criar um dll com um formulário e publicá-lo, mas não permitir que ninguém o utilize :blink: hehehe
Oi Lucas! Muito obrigada pela ajuda! Deu certo aqui para abrir o form. :lol: Mas agora estou com um outro problema.. Não estou conseguindo passar valores entre eles... você sabe como eu poderia fazer isso? Eu tentei usar o Set e Get, mas não dá certo... ' Primeiro Form - frmFinPagamentos.vb
Dim frmMain_boleto = New Global.BoletoNet.frmMain
...
frmMain_boleto.CedenteCNPJ = 01234567/0001-91
frmMain_boleto.cedenteRazaoSocial = "Empresa ABC"
Segundo Form - frmMain.cs
public partial class frmMain : Form
{
 private string _cedenteCNPJ;
 private string _cedenteRazaoSocial;
 ...
 public string CedenteCNPJ
 {
 get { return _cedenteCNPJ; }
 set { _cedenteCNPJ = value; }
 }

 public string cedenteRazaoSocial
 {
 get { return _cedenteRazaoSocial; }
 set { _cedenteRazaoSocial = value; }
 }
 ...
 string cCNPJ = CedenteCNPJ;
 string cRazaoSocial = cedenteRazaoSocial;
 //aqui, ele retorna com valores Null...

Obrigada pela atenção.

Link para o comentário
Compartilhar em outros sites

  • 0

Para que você possa acessar os dados de um objeto, que no seu caso são os formulários, é necessário possuir uma referência pro mesmo. Vou te passar a idéia básica de como fazer e tente ai. Desculpe qualquer erro. Tem uns 2, 3 anos que só programo em C#, então meu vb ta meio enferrujado ^^

'Formulário externo (dll)
'Campo com a referência para o formulário "pai"
Private pai as Form1

'Construtor da classe
Private Sub New(ByRef FormParent as Form1)
pai = FormParent
End Sub

'Fomulário pai, quer irá abrir o novo form
'Campo com a referência para o formulário "filho"
Private filho as FormularioFilho

'Metodo que irá abrir o fomulário
Private Sub OpenForm()
filho = New FormularioFilho(Me)
End Sub

Assim, você poderá acessar todos os membros publicos do formulario que abrir usando pai. e os membros do formulario aberto usando filho.

Boa sorte

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...