---
title: "Dev-C++ felmeddelande"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/28088-dev-c-felmeddelande"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "orvar"
published: "2001-09-25T13:38:00.000Z"
updated: "2001-09-25T14:27:00.000Z"
replies: 2
views: 427
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/28088-dev-c-felmeddelande"
---

# Dev-C++ felmeddelande

## #1 — orvar, 2001-09-25T13:38Z

Tjena.
Skriver in följande kod i Dev-C++ 4:
\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Kod:\<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"\>
\#include \<iostream.h\>

typedef unsigned short int USHORT;
typedef unsigned long int ULONG;
enum BOOL { FALSE, TRUE};
enum CHOICE { DrawRect = 1, GetArea,
     GetPerim, ChangeDimension, Quit};
// Klassen Rectangle deklareras
class Rectangle
{
  public:
    // kontruerare
    Rectangle(USHORT width, USHORT height);
    \~Rectangle();

    // åtkomstfunktioner
    USHORT GetHeight() const { return itsHeight; }
    USHORT GetWidth() const { return itsWidth; }
    ULONG GetArea() const { return itsHeight \* itsWidth; }
    ULONG GetPerim() const { return 2\*itsHeight + 2\*itsWidth; }
    void SetSize(USHORT newWidth, USHORT newHeight);

    // Diverse metoder
    void DrawShape() const;

  private:
    USHORT itsWidth;
    USHORT itsHeight;
};

// Implementationer av klassmetoder
void Rectangle::SetSize(USHORT newWidth, USHORT newHeight)
{
  itsWidth = newWidth;
  itsHeight = newHeight;
}

Rectangle::Rectangle(USHORT width, USHORT height)
{
  itsWidth = width;
  itsHeight = height;
}

Rectangle::\~Rectangle() {}

USHORT DoMenu();
void DoDrawRect(Rectangle);
void DoGetArea(Rectangle);
void DoGetPerim(Rectangle);

void Main()
{
  // initiera en rektangel till värdet 10,20
  Rectangle theRect(30,5);

  USHORT choice = DrawRect;
  USHORT fQuit = FALSE;

  while (!Quit)
  {
    choice = DoMenu();
    if (choice \< DrawRect &#0124;&#0124; choice \> Quit)
    {
      cout \<\< "\\nOgiltigt alternativ, gör ett nytt val.\\n\\n";
      continue;
    }
    switch (choice)
    {
    case DrawRect:
      DoDrawRect(theRect);
      break;
    case GetArea:
      DoGetArea(theRect);
      break;
    case GetPerim:
      DoGetPerim(theRect);
      break;
    case ChangeDimension:
      USHORT newLength, newWidth;
      cout \<\< "\\nNy bredd: " ;
      cin \>\> newWidth;
      cout \<\< "\\nNy höjd: " ;
      cin \>\> newLength;
      theRect.SetSize(newWidth, newLength);
      DoDrawRect(theRect);
      break;
    case Quit:
      fQuit = TRUE;
      cout \<\< "\\nAvslutar programmet...\\n\\n";
      break;
    default:
      cout \<\< "\\nFelaktigt val!\\n";
      fQuit = TRUE;
      break;
    }  // slut på switch-satesen
  }  // slut på while
}  // slut på main

USHORT DoMenu()
{
  USHORT choice;
    cout \<\< "\\n\\n   \*\*\* Meny \*\*\*  \\n";
    cout \<\< "(1) Rita en rektangel\\n";
    cout \<\< "(2) Yta\\n";
    cout \<\< "(3) Omkrets\\n";
    cout \<\< "(4) Ändra storlek\\n";
    cout \<\< "(5) Avsluta\\n";

  cin \>\> choice;
  return choice;
}

void DoDrawRect(Rectangle theRect)
{
  USHORT height = theRect.GetHeight();
  USHORT width = theRect.GetWidth();

  for (USHORT i = 0; i\<height; i++)
  {
    for (USHORT j = 0; j\<width; j++)
      cout \<\< "\*";
     cout \<\< "\\n";
  }
}

void DoGetArea(Rectangle theRect)
{
  cout \<\< "Yta: " \<\< theRect.GetArea() \<\< endl;
}

void DoGetPerim(Rectangle theRect)
{
  cout \<\< "Omkrets: " \<\< theRect.GetPerim() \<\< endl;
}

Får inga kompileringsfel men en ny ruta med titeln "Compiler and linker output" kommer fram där det står:

C:\\CPLUSP\~2\\LIB\\\\libmingw32.a(main.o)(.text+0x8e): undefined reference to \`WinMain@16'

Det skapas heller ingen .exe fil som jag kan köra.
Lösning någon?

Permalänk: https://www.webforum.nu/p/28088

## #2 — Chainsaw, 2001-09-25T14:27Z

Felet är raden "void Main()" som är fel. Det finns main() och WinMain() men absolut inte Main(). I det här fallet vill kompilatorn ha WinMain().

Permalänk: https://www.webforum.nu/p/401195

## #3 — PeW, 2001-09-25T14:27Z

Verkar som om du försöker peta in 32 bitars kod i ett 16 bitars skal. Kolla upp hur projektet är konfat under "options" eller nåt.

r:
Sågen hade ett bättre svar  ;)

Permalänk: https://www.webforum.nu/p/401196

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/28088-dev-c-felmeddelande
