Posts
256
Comments
330
Trackbacks
7
marzo 2008 Entries
Adobe Photoshop Express

Adobe ha rilasciato una versione on-line, denominata Express (mi ricorda tanto altri prodotti...) gratuita. Permette di modificare, migliorare e pubblicare le fotografie digitali senza installare nulla (si hanno a disposizione 2 giga di spazio).

Articolo della notizia qui, link diretto del prodotto qui dove è possibile fare un "Test drive" dell'applicazione senza doversi per forza registrare.

posted @ venerdì 28 marzo 2008 9.16 | Feedback (2)
SMS tramite Windows Mobile

Per inviare un messaggio SMS mediante un'applicazione Windows Mobile, sono sufficienti poche righe di codice (2):

1 SmsMessage sms = new SmsMessage(phoneNumber, textMessage);
2 sms.Send();

Ovviamente dopo aver importato il namespace Microsoft.WindowsMobile.PocketOutlook;

 

posted @ giovedì 20 marzo 2008 9.49 | Feedback (0)
[OT] Guerre stellari è qui...

La notizia è di ieri, ma promette l'apertura di scenari futuristici (e inquietanti). Negli USA, e' stato messo appunto un cane-robot, denominato "BigDog", (ovviamente) per scopi militari, che riesce a camminare su qualsiasi tipo di terreno, senza sbilanciarsi. Notizia completa qui, per i video basta  cercare su YouTube la parola "bigdog".

posted @ giovedì 20 marzo 2008 8.40 | Feedback (3)
[OT] Occhiali che registrano la vita....

Così (forse) non perderò più le chiavi della macchina :-) Articolo completo qui

posted @ giovedì 6 marzo 2008 18.52 | Feedback (0)
Marshal & Struct

Post nato da una discussione su forum. Grazie alla classe Marshal , è possibile, ad esempio, convertire una struct in un array di byte e viceversa. Supponiamo di avere la seguente struct, denominata con tanta fantasia, CustomStruct:

1 private struct CustomStruct
2 {
3 public byte _b1;
4 public byte _b2;
5 public char _c;
6 public uint _unsInt;
7 public ushort _unsShort;
8 9 public CustomStruct(byte b1, byte b2, char c,
10 uint unsInt,ushort unsShort)
11 {
12 _b1 = b1;
13 _b2 = b2;
14 _c = c;
15 _unsInt = unsInt;
16 _unsShort = unsShort;
17 }
18 19 /// <summary> 20 /// Converte un istanza di oggetto CustomStruct in un array di byte
21 /// </summary> 22 /// <param name="obj"></param> 23 /// <returns></returns> 24 public static byte[] ObjectToArray(object obj)
25 {
26 int len = Marshal.SizeOf(obj);
27 byte[] arrByte = new byte[len];
28 IntPtr ptr = Marshal.AllocHGlobal (len);
29 Marshal.StructureToPtr(obj, ptr, true);
30 Marshal.Copy(ptr, arrByte, 0, len);
31 Marshal.FreeHGlobal(ptr);
32 33 return arrByte;
34 }
35 36 /// <summary> 37 /// Converte un array di byte in un istanza di oggetto CustomStruct
38 /// </summary> 39 /// <param name="bytearray"></param> 40 /// <param name="objStruct"></param> 41 public static CustomStruct ArrayToObject(byte[] bytearray)
42 {
43 CustomStruct obj = new CustomStruct();
44 int len = Marshal.SizeOf(obj);
45 IntPtr i = Marshal.AllocHGlobal(len);
46 Marshal.Copy(bytearray, 0, i, len);
47 obj = (CustomStruct)Marshal.PtrToStructure(i, obj.GetType());
48 Marshal.FreeHGlobal(i);
49 return obj;
50 }
51 }

Il codice per eseguire la conversione, è il seguente:

1 //Creo un istanza di oggetto CustomStruct e la converto in un array di byte 2 CustomStruct custStruct = new CustomStruct (10, 20, 'z',34,1);
3 byte[] arrByte = CustomStruct.ObjectToArray(custStruct);
4 5 MessageBox.Show(custStruct._unsInt.ToString());
6 7 //Creo una seconda istanza di oggetto custStruct, valorizzandola con i
8 //dati contenuti nell'array di byte precedente 9 CustomStruct custStruct2= CustomStruct.ArrayToObject(arrByte);
10 MessageBox.Show(custStruct2._unsInt.ToString());
Technorati Tag:
posted @ giovedì 6 marzo 2008 9.41 | Feedback (0)
News

View Pietro Libro's profile on LinkedIn

DomusDotNet
   DomusDotNet

Pietro Libro