www.mikrocontroller.net

Forum: PC-Programmierung C# code compile problem.


Autor: RxCet (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe leute ich kann diesen code mit c# 2010 express nicht compilen
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace LED_Display
{
    public partial class Form1 : Form
    {
        private Bitmap myBitmap;
        int i = 0;
        int j = 0;

        public byte[] SendData = new byte[1];

        public class Win32APICall
        {


            [DllImport("gdi32.dll", EntryPoint = "DeleteDC")]
            public static extern IntPtr DeleteDC(IntPtr hdc);

            [DllImport("gdi32.dll", EntryPoint = "DeleteObject")]
            public static extern IntPtr DeleteObject(IntPtr hObject);

            [DllImport("gdi32.dll", EntryPoint = "BitBlt")]
            public static extern bool BitBlt(IntPtr hdcDest, int nXDest,
                int nYDest, int nWidth, int nHeight, IntPtr hdcSrc,
                int nXSrc, int nYSrc, int dwRop);

            [DllImport("gdi32.dll", EntryPoint = "CreateCompatibleBitmap")]
            public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc,
                int nWidth, int nHeight);

            [DllImport("gdi32.dll", EntryPoint = "CreateCompatibleDC")]
            public static extern IntPtr CreateCompatibleDC(IntPtr hdc);

            [DllImport("gdi32.dll", EntryPoint = "SelectObject")]
            public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobjBmp);

            [DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
            public static extern IntPtr GetDesktopWindow();

            [DllImport("user32.dll", EntryPoint = "GetDC")]
            public static extern IntPtr GetDC(IntPtr hWnd);

            [DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
            public static extern int GetSystemMetrics(int nIndex);

            [DllImport("user32.dll", EntryPoint = "ReleaseDC")]
            public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDC);

            public static Bitmap GetDesktop()
            {
                IntPtr hBmp;
                IntPtr hdcScreen = GetDC(GetDesktopWindow());
                IntPtr hdcCompatible = CreateCompatibleDC(hdcScreen);

                int screenX;
                int screenY;

                screenX = GetSystemMetrics(0) ;
                screenY = GetSystemMetrics(1) ;

                hBmp = CreateCompatibleBitmap(hdcScreen, screenX, screenY);

                if (hBmp != IntPtr.Zero)
                {
                    IntPtr hOldBmp = (IntPtr)SelectObject(hdcCompatible, hBmp);
                    //BitBlt(hdcCompatible, 0, 0, screenX, screenY, hdcScreen, 0, 0, 13369376);

                    BitBlt(hdcCompatible, 0, 0, screenX, screenY, hdcScreen, 0, 0, 13369376);

                    SelectObject(hdcCompatible, hOldBmp);
                    DeleteDC(hdcCompatible);
                    ReleaseDC(GetDesktopWindow(), hdcScreen);

                    Bitmap bmp = System.Drawing.Image.FromHbitmap(hBmp);

                    DeleteObject(hBmp);
                    GC.Collect();

                    return bmp;
                }

                return null;
            }

            
        }


        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.Open();
        }

        private void led_send()
        {

            myBitmap = Win32APICall.GetDesktop();

            //Graphicsオブジェクトの作成
             Graphics g = groupBox1.CreateGraphics();


            for (int y = 0; y < 32; y++)
            {
                j = j + 7;

                for (int x = 0; x < 32; x++)
                {

                    i = i + 7;
                    try
                    {

                        Color myColor = myBitmap.GetPixel(MousePosition.X + (31 - x) * (int)(numericUpDown1.Value), MousePosition.Y + y * (int)(numericUpDown1.Value));

              //Brushオブジェクトの作成
                          SolidBrush b = new SolidBrush(myColor);

                        //(10,20,100,80)の長方形を塗りつぶす
                          g.FillRectangle(b, 240 - i, 10 + j, 5, 5);

                        //Color myColor2 = myBitmap.GetPixel(MousePosition.X, MousePosition.Y);
                        //textBox1.Text = myColor2.R.ToString();
                        //textBox2.Text = myColor2.G.ToString();
                        //textBox3.Text = myColor2.B.ToString();

                        if (radioButton1.Checked)
                        {
                            SendData[0] = Convert.ToByte(myColor.R);
                        }
                        if (radioButton2.Checked)
                        {
                            SendData[0] = Convert.ToByte(myColor.G);
                        }
                        if (radioButton3.Checked)
                        {
                            SendData[0] = Convert.ToByte(myColor.B);
                        }

                        serialPort1.Write(SendData, 0, 1);//送信
                    }
                    catch
                    {
                    }

                }

                i = 0;
            }

            j = 0;

        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            led_send();
        }
    }
}

Autor: fz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehlermeldung?

Autor: c# mensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rest von der Solution?

Autor: Klaus Wachtler (mfgkw)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Da stehen wohl irgendwelche kruden Sonderzeichen im Quelltext.
Vielleicht mal mit einem richtigen Editor öffnen und/oder
hexadezimal anschauen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.