16. marts 2004 - 18:46Der er
27 kommentarer og 1 løsning
kan ikke referere til en struct
Hej jeg sidder og roder med denne struct:
public struct st_feedback { byte pic_status; byte status_valid; byte status_usrcmd; short crc_error_count; };
Den er defineret under public class Form1 : System.Windows.Forms.Form
Den del er der ingen brok over, men når jeg skal bruge den længere nede i en radioButton kan jeg til "int bytesRec = sockets.sender.Receive(feedbacks);" virker skidtet ikke. Det skal tilføjes jeg oprettet objektet "st_feedback feedbacks = new st_feedback();" under radioButton.
C:\Documents and Settings\Admin\Skrivebord\IPAQ_BAK\Form1.cs(371): The name 'feedbacks' does not exist in the class or namespace 'IPAQ.Form1'
eller
C:\Documents and Settings\Admin\Skrivebord\IPAQ_BAK\Form1.cs(423): The best overloaded method match for 'System.Net.Sockets.Socket.Receive(byte[])' has some invalid arguments
sorry, min fejl... jeg havde glemt at fjerne det da jeg testede.
Nu kommer denne fejl:
C:\Documents and Settings\Admin\Skrivebord\IPAQ_BAK\Form1.cs(423): The best overloaded method match for 'System.Net.Sockets.Socket.Receive(byte[])' has some invalid arguments
kode: public byte[] st_feedback() { byte pic_status; byte status_valid; byte status_usrcmd; short crc_error_count; } fejl: C:\Documents and Settings\Admin\Skrivebord\IPAQ_BAK\Form1.cs(49): 'IPAQ.Form1.st_feedback()': not all code paths return a value
Kode: st_feedback feedback = new st_feedback();
Fejl: C:\Documents and Settings\Admin\Skrivebord\IPAQ_BAK\Form1.cs(359): 'IPAQ.Form1.st_feedback()' denotes a 'method' where a 'class' was expected
public struct st_feedback { byte pic_status; byte status_valid; byte status_usrcmd; short crc_error_count;
public byte[] ToByte() { MemoryStream ms = new MemoryStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, this); return ms.ToArray(); } }
private void radioButton1_CheckedChanged(object sender, System.EventArgs e) { st_feedback feedback = new st_feedback(); byte[] bytes = new byte[16]; byte[] msg = new byte[16]; msg[0] = netdaemon.NET_M_RUN + netdaemon.FEEDBACK;
if (radioButton1.Checked == true ) { int i = sockets.sender.Send(msg, 0, 1, SocketFlags.None); int bytesRec = sockets.sender.Receive(feedbacks.ToByte());
jeg har til føjet det du skrev + using System.Runtime.Serialization.Formatters.Binary;
denne fejl kommer når det køres:
C:\Documents and Settings\Admin\Skrivebord\IPAQ_BAK\Form1.cs(72): The type or namespace name 'BinaryFormatter' could not be found (are you missing a using directive or an assembly reference?)
mit eneste bud til hvorfor at den ikke kan finde BinaryFormatter... for slår man op i sdk'et er .NET Compact Framework - Windows CE .NET ikke understøttet
Jeg har selv fusket mig ud at den.... Jeg valgte at modtage den som et byte[], for derefter selv at lægge den over i den struct, som jeg ville have den i....
Men ellers tak for indsatsen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.