Avançar para o conteúdo principal

Criar e utilizar DLL no MonoDevelop

Tal como no Visual Basic também o Mono Develop permite criar DLL's a utilizar em outras aplicações.
Primeiro a DLL:


Eis o código:
using System;
using System.Collections.Generic;  //namespace para as listas

namespace class_valores
{
public class valores
{
private List<int> lista;
//construtor
public valores ()
{
lista=new List<int>();
}
//construtor versao 2
public valores (int x)
{
lista=new List<int>();
lista.Add(x);
}
//destrutor
public void destroy()
{
lista.Clear();
}
//inserir um elemento
public void adiciona(int x)
{
lista.Add(x);
}
//delvove o numero de elementos
public int n_elementos()
{
return lista.Count;
}
//calcula e devolve a media
public double media()
{
double m;
int i,t;

t=0;
for(i=0;i<lista.Count;i++)
t=t+lista[i];
m=(double)t/(double)lista.Count;
return m;
}
//calcula e devolve a soma total
public int soma()
{
int t;

t=0;
foreach(int x in lista)
{
t+=x;
}
return t;
}
//devolve o maior
public int maior()
{
int m;
m=0;
if(lista.Count>0){
m=lista[0];
foreach(int x in lista){
if(x>m) m=x;
}
}
return m;
}
//devolve o menor
public int menor()
{
int m;
m=0;
if(lista.Count>0){
m=lista[0];
foreach(int x in lista){
if(x<m) m=x;
}
}
return m;
}
}
}


Agora a aplicação que vai utilizar a DLL.
Primeiro adicionamos a referência à DLL





Depois disto temos na lista das referências
Agora sim podemos inserir o código:

using System;
using Gtk;
using class_valores;

public partial class MainWindow: Gtk.Window
{
public class_valores.valores val = new class_valores.valores();

public MainWindow (): base (Gtk.WindowType.Toplevel)
{
Build ();
}

protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}
//Terminar
protected void OnButton2Clicked (object sender, System.EventArgs e)
{
val.destroy();
Application.Quit ();
//throw new System.NotImplementedException ();
}
//calcular
protected void OnButton1Clicked (object sender, System.EventArgs e)
{
int x;

x=Convert.ToInt16(this.entry1.Text);

val.adiciona(x);
this.lb_maior.Text=val.maior ().ToString();
this.lb_menor.Text=val.menor().ToString();
this.lb_soma.Text=val.soma().ToString();
this.lb_media.Text=val.media().ToString();
//throw new System.NotImplementedException ();
}
}

No final é só correr.

Comentários

Mensagens populares deste blogue

Upgrade do Windows Home para Pro sem formatar

 Há algum tempo que tentava fazer o upgrade do meu Windows 10 da versão Home para a versão Pro, mas chegava sempre a um ponto em que me era solicitado para formatar o sistema e não estava para isso. Finalmente conseguinte seguindo estes passos: - seguinte estes passos  utilizei uma das chaves genéricas para o Windows 10 Pro e fui a Settings > Update & Security > Activation > Change the product key; - após inserir uma das chaves o Windows instala as funcionalidades Pro e pede para reiniciar; - agora tem o Windows Pro mas não está ativado, assim fui ao site urcdkeys  onde comprei uma chave para o Windows Pro por menos de €20; - com essa chave voltei a funcionalidade Change the product key e ativei o Windows; - e pronto, Windows Pro ativado sem formatar ou reinstalar. Importante : eu não tenho nada a ver com o site urcdkeys por isso a vossa experiência pode correr de forma diferente da minha.

Encriptar e Desencriptar

Com o .Net podemos facilmente codificar e descodificar mensagens através do namespace Cryptography. Neste post vamos estudar um programa que encripta um texto com base numa palavra passe e posteriormente descodifica a mensagem. Começamos por criar uma função para encriptar: string codifica(string mensagem, string ppasse) {   //este vector vai ficar com a mensagem encriptada   byte [] mensagem_codificada;  //vamos utilizar codificação UTF8   System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();   // Vamos utilizar o algoritmo MD5 para fazer o Hash da palavra passe   MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();   //Agora podemos então fazer o hash da palavra passe   byte[] TDESChave = HashProvider.ComputeHash(UTF8.GetBytes(ppasse));   //De seguida vamos escolher o algoritmo de encriptação   TripleDESCryptoServiceProvider TDESAlgoritmo = new TripleDESCryptoServiceProvider();   //Confi...

PONG em Flash AS3.0

Mais um pequeno jogo para demonstrar algumas das funcionalidades do AS3.0. Para este exemplo vamos implementar uma versão do Pong. Para este Pong vamos criar a possibilidade de acelerar a bola com a raqueta e, para tornar o jogo mais difícil, quando se atingir uma determinada pontuação fazemos aparecer uma parede no meio do campo de jogo. O código é muito parecido com o jogo do post anterior, mas um pouco mais complicado. Para controlar a nossa raqueta utilizamos a seguinte função: function teclado(e:KeyboardEvent):void{ dir_j1=0; if (e.keyCode == Keyboard.UP){ if(jogador1.y>0) jogador1.y -=5; dir_j1=-5; } if (e.keyCode == Keyboard.DOWN){ if(jogador1.y<370) jogador1.y +=5; dir_j1=5; } } Agora está mais simples pois só percorremos as linhas, ou seja, a coluna nunca muda. A raqueta que é controlada pelo computador depende do seguinte código: function movepc():void { if (bola.y>jogador2.y) jogador2.y = jogador2.y + velocidade_y; if (bola.y<jogador2.y) joga...