User LoL Posted June 4, 2013 at 07:05 PM Report #511038 Posted June 4, 2013 at 07:05 PM (edited) Como eu faço para criar uma função em uma classe, tendo em vista que estou fazendo referencia a objetos que ainda não existem, que so serão criados depois no form, como textbox. A função é essa: If textbox1.Text = "teste1" Then textbox2.Text = "1" textbox3.Text = "1" End If If textbox1.Text = "teste2" Then textbox2.Text = "2" textbox3.Text = "2" End If Já tentei colocar por exemplo: Dim textbox1 as textbox, mas não da certo. Eu preciso criar essa função na classe, para depois eu usar ela no form ai quando eu for fazer uma atualização so substituo a dll que sera gerada da classe. Edited June 4, 2013 at 07:09 PM by User LoL
nelsonr Posted June 4, 2013 at 08:55 PM Report #511052 Posted June 4, 2013 at 08:55 PM Não dá para perceber muito bem o que pretendes. No entanto, talvez possas passar as textboxs por parametro como referencia para dentro do método da class que vai precisar de mexer nelas.
ribeiro55 Posted June 5, 2013 at 08:51 AM Report #511089 Posted June 5, 2013 at 08:51 AM (edited) Exacto, passa as textbox por parâmetros ByRef. Public Sub FazerQQCoisa(ByRef textbox1 As TextBox, ByRef textbox2 As TextBox) If textbox1.Text = "teste1" Then textbox2.Text = "1" textbox3.Text = "1" End If If textbox1.Text = "teste2" Then textbox2.Text = "2" textbox3.Text = "2" End If End Sub Edited June 5, 2013 at 08:52 AM by ribeiro55 Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
User LoL Posted June 6, 2013 at 12:44 AM Author Report #511261 Posted June 6, 2013 at 12:44 AM ByRef não funcionou, troquei por ByVal, um detalhe é que a dll é de um projeto de livraria de classes, e não de um projeto windows forms, vou gerar uma dll e depois referenciar ela em outros projetos, ficou mais ou menos assim: Public textbox2 As String Public textbox3 As String Public Sub SuaFuncao(ByVal textbox1 As String) If textbox1 = "teste" Then textbox2 = "1" textbox3 = "1" End If End Sub End Class Agora,uma questão é, como proteger essa dll? Depois de gerada eu abri com o notepad, e consegui compreender boa parte do código, como o "teste1" e o "1" fica totalmente explicito, não há maneiras de proteger a dll ou ofuscar o código?
nelsonr Posted June 6, 2013 at 08:00 AM Report #511267 Posted June 6, 2013 at 08:00 AM Depende do que pretendes com esses textos, mas talvez possas encriptar o conteúdo ou mesmo gerar um hash, de modo a não ter o texto explicito. Depois na comparação em vez de comparares com o texto simples, comparas com o hash esperado.
ribeiro55 Posted June 6, 2013 at 10:06 AM Report #511301 Posted June 6, 2013 at 10:06 AM Não interessa se é uma DLL. Carregando referências às Forms conseguias ter TextBoxes disponíveis se fosse mesmo necessário. O principal problema aqui, e que não quis mencionar antes, é o facto de estares a operar sobre TextBoxes e não sobre Strings, que curiosamente foi a "solução" a que chegaste. ByRef seria necessário se tivesses de operar o objecto TextBox dentro da classe, mas aparentemente estás a operar Strings e deves estar a enviar como parâmetro o TextBox.Text e a esperar que volte para trás... não volta. Abrir a DLL no notepad não te vai mostrar rigorosamente nada da tua lógica. Apenas das tuas assinaturas. Ou seja, cinge-te às regras de encapsulamento de classes e nada de importante é revelado. Utiliza também atributos Debbuggerhidden (escrevi um artigo para a Wiki da comunidade. Procura por lá) para evitar que o debugger ande lá para dentro. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
User LoL Posted June 7, 2013 at 01:43 AM Author Report #511459 Posted June 7, 2013 at 01:43 AM Dei uma olhada la, e também pensei em usar um hash, vou ver ainda qual se encaixa melhor no meu projeto. Agora me veio uma ideia meio que estranha, pensei em "exportar" para uma dll todas as opções e propriedades de um MenuStrip, tipo,colocar na dll as opções "arquivo" "novo" etc... Depois eu poderia implementar uma função extra na dll sem ter que abrir o projeto windows forms e modificar manualmente. Alguma sugestão de como fazer isso? e é seguro? pois isso permitiria incluir códigos maliciosos na aplicação
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now