Announcement

Collapse
No announcement yet.

Was bedeutet Fehlermeldung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Was bedeutet Fehlermeldung

    Was bedeutet diese Fehlermeldung: <br>
    <i>Fehler: Unresolved external '_main' referenced from C:\PROGRAMME\BORLAND\BCC55\LIB\C0X32.OBJ </i><br><br>

    Ist allerdings nicht die Borland IDE sondern nur der Borland Compiler. <br>
    Mein Prog. Lehrer hat für den kostenlosen Compiler son Editor geschrieben.<br><br>

    <b>Nachtrag: </b><br>
    Hab mal die Dateien Online gestellt: <br>
    http://www.spyke-online.de/DDraw.cpp <br>
    http://www.spyke-online.de/DDraw.h - nicht die ddraw.h von direktx <br><br>

    und habe verwendet Directx SDK7 <br><br>

    Nach neustarten des PC's hat sich die Fehlermeldung übrigens in <br>
    <i>Fehler: Unresolved external 'xxxDDraw_Puffer_wechseln()' referenced from C:\TEMP\CPPTRAIN\TEMPSRC.OBJ </i><br>
    geändert <br><br>

    Hoffe ihr könnt mir helfen.

  • #2
    Damit man das nutzen kann fehlt die

    #pragma comment(lib, "ddraw.lib")

    ddraw.lib

    Kann es sein, dass du die nicht hast, bzw. diese nicht gefunden wird??

    Bekomme den Fehler:

    [C++ Fehler] ddraw.h(16): E2147 Parameterdeklaration darf nicht mit 'LPDIRECTDRAWSURFACE7' beginne
    Christian

    Comment


    • #3
      Dem Programm fehlt die main-function. Ist in irgendeiner Header-Datei deklariert jedoch fehlt die Implementation

      Comment


      • #4
        Also bei mir ist sie da:

        int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hprevinst, LPSTR lpcmdline, int ncmdshow)
        Christian

        Comment


        • #5
          Es sieht so aus, daß das Projekt nicht als Windows-Programm übersetzt wurde. Bei einem Windows-Programm wird die WinMain-Funktion bei einem DOS bzw. Konsolenprogramm die main-Funktion benötigt

          Comment


          • #6
            LIB Datei ist eingefügt und wenn ich das Programm ohne die ganzen Directx Sachen starte also normal nur als Windows dann funktioniert es

            Comment


            • #7
              Vielleicht spielt die Direct X Version eine Rolle?
              Christian

              Comment


              • #8
                OK hab die Fehlerquelle gefunden:<br>
                <b>Code:</b> <br>LRESULT CALLBACK WindowProc(HWND hwnd,UINT message,WPARAM wparam, LPARAM lparam)<br>
                {<br>
                switch(message)<br>
                {<br>
                case WM_DESTROY:<br>
                {<br>
                done=true;<br>
                PostQuitMessage(0);<br>
                return 0;<br>
                } break;<br>
                case WM_KEYDOWN:<br>
                switch(wparam)<br>
                {<br>
                case VK_ESCAPE:<br>
                {<br>
                PostMessage(hwnd, WM_CLOSE,0,0);<br>
                return 0;<br>
                } break;<br>
                case VK_F12:<br>
                {<br>
                xxxDDraw_Puffer_wechseln(); <i>//<-- diese Zeile ist es, hab schon mit ner anderen Funktion versucht irgendwie nimmt er dort keine meiner Funktionen an</i><br>
                return 0;<br>
                } break;<br>
                } break;<br>
                default: break;<br>
                }<br>
                return DefWindowProc(hwnd,message,wparam,lparam);<br>
                }<br>

                <br><br> Hoffe ihr könnt mir jetzt helfen

                Comment


                • #9
                  a) die Routine xxxDDraw_Puffer_wechseln(); gibt einen Wert zurück

                  b)Glaube die case könnte man anders bauen
                  <pre>
                  ...

                  case xxx:
                  Befehl;
                  Befehl;
                  break;

                  Ein Fassung in { } ist nicht nötig

                  case xxx:
                  Befehl;
                  return;
                  break; // kann entfallen, da der Code nicht erreicht wird
                  </pre>

                  Solange man das Programm nicht compilieren kann s.o., kann man auch den Fehler nicht finde
                  Christian

                  Comment


                  • #10
                    Sorry, kannst du das genauer sagen was ich machen soll und warum es nicht geht

                    Comment


                    • #11
                      Da ich das Programm nicht compilieren kann (s.o.), kann ich nix genaues sagen, aber mir ist halt aufgefallen, dass

                      bool xxxDDraw_Puffer_wechseln(void);

                      einen boolschen Wert zurückgibt und du vielleicht die switch / case Anweisungen ungewöhnich einsetzt.

                      <pre>
                      switch(wparam)
                      {
                      case VK_ESCAPE:
                      PostMessage(hwnd, WM_CLOSE,0,0);
                      return 0;
                      case VK_F12:
                      xxxDDraw_Puffer_wechseln();
                      return 0;
                      Christian

                      Comment


                      • #12
                        ne, daran liegts nicht.<br>
                        Habs so getestet und läuft auch nicht.<br><br>
                        es liegt irgendwie an<br>
                        <i>LRESULT CALLBACK WindowProc(HWND hwnd,UINT message,WPARAM wparam, LPARAM lparam)<br>
                        {<br>}</i><br><br>

                        Ich kann dort irgendwie keine von mir definierten Methoden angeben

                        Comment

                        Working...
                        X