Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » "Stapelfehler" aber warum??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.04.2005, 13:24 Uhr
RedEagle



Hi

Hab hier ne ganz komische sache.
Folgender code, hat schon tausendmal funktioniert, aber auf einmal stürtzt das Programm immer ab


Fehler:

DX8_LD2D verursachte einen Stapelfehler in Modul DX8_LD2D.EXE bei 01b7:00406fe3.
Register:
EAX=001ac82c CS=01b7 EIP=00406fe3 EFLGS=00010202
EBX=00affad0 SS=01bf ESP=00affa68 EBP=00affa7c
ECX=00901a70 DS=01bf ESI=00008af4 FS=533f
EDX=00008b10 ES=01bf EDI=00affa84 GS=6667
Bytes bei CS:EIP:
83 09 00 2d 00 10 00 00 eb e9 29 c1 83 09 00 89
Stapelwerte:
00000000 004016d0 00affad0 00008af4 00affa84 00affa9c bff7363b 00000774 00000024 00000000 00affb10 8ace52e7 000001bf 00affab0 bff94407 66678af4


"DX8_LD2D.EXE" ist natürlich meine Anwendung...

Hier der Code:

C++:
#define WindowTitle     "dx8_LD2d"
#define WindowClassName "DDWinClass"
HWND hwndmainwnd;

//------------------------------------------------------------------------------------------


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  int msg_value = MessageBox(NULL, "Soll wirklich gestartet werden?", "dx8_LD2d", MB_ICONQUESTION | MB_YESNO);
  if(msg_value!=IDYES)return 0;



MSG      msg;
WNDCLASS wndclass_main;

if(!hPrevInstance)
{
  wndclass_main.style         = CS_HREDRAW | CS_VREDRAW;
  wndclass_main.lpfnWndProc   = WndProc_main;
  wndclass_main.cbClsExtra    = 0;
  wndclass_main.cbWndExtra    = 0;
  wndclass_main.hInstance     = hInstance;
  wndclass_main.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
  wndclass_main.hCursor       = LoadCursor(NULL, IDC_ARROW);
  wndclass_main.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
  wndclass_main.lpszMenuName  = NULL;
  wndclass_main.lpszClassName = WindowClassName;
  RegisterClass(&wndclass_main);    
}
//Bis hier hin, kommt das Programm, bei CreateWindow stürtzt es ab :(
hwndmainwnd = CreateWindow(WindowClassName, WindowTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
ShowCursor(false);
ShowWindow  (hwndmainwnd, nCmdShow);  
UpdateWindow(hwndmainwnd);
//...



Hab schon den teil 1:1 aus meinem !Funktionierenem! backup kopiert, hilft aber auch nichts

Ich habe absolut nicht geändert...
Woran kann das liegen, und wie bekomme ich das wieder zum laufen??
--
MFG RedEagle

Dieser Post wurde am 30.04.2005 um 13:25 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.04.2005, 16:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


schau mal ob RegisterClass auch funktioniert, den DDWinClass könnte schon vergeben sein.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.04.2005, 16:46 Uhr
RedEagle




C++:
#define WindowClassName "DDWinClass_von_mir_und_niemandem_anders"

//...

  if(!RegisterClass(&wndclass_main))
  {
   MessageBox(NULL, "RegisterClass() ist Fehlgeschlagen", "ERROR", MB_ICONSTOP | MB_OK);    
   return 0;
  }  

Der fehler bleibt leider

Kann der Fehler auch durch Fremdeinwirkung verursacht werden?? Ich hab an dem Codeteil NIE was verändert, und er lief schon seit 5 Tagen problemlos....
--
MFG RedEagle

Dieser Post wurde am 30.04.2005 um 17:08 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.04.2005, 17:56 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Wie sieht denn die WndProc_main aus? Achja, hPrevInstance ist bei Win32 immer 0...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.04.2005, 20:43 Uhr
RedEagle



immer 0?? ging aber trotzdem immer

jedenfals lag's wirklich an einer Funktion in der WndProc_main, die aber fürher auch perfekt funktionierte...

jedenfals hab ich da ein Verdacht:

C++:
GetPrivateProfileString(ini_group, ini_item, "NULL", ini_value, size, map_path);

//...

    Bitmap_object = DDLoadBitmap(lpDirectDraw, object, 20, 20); //lädt das bitmap
    SetRect(&rBitmap_object, (X*20), (Y*20), ((X*20)+20), ((Y*20)+20)); //Koordinaten der bmp's                                    
    lpDDSBack->Blt(&rBitmap_object, Bitmap_object, NULL, DDBLT_WAIT, NULL);//Hintergrund



Diese beiden Stelle werden 1200 mal Durchgefühert (um eine Map zu laden, die aus vielen 20×20 px großen Bitmaps besteht), liegts evtl daran??
kann ich das denn dann irgendwie verbessern??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.04.2005, 20:49 Uhr
RedEagle



Habs zum laufen gebracht...
Aus irgendeinem Grund lag's am Funktionskopf...
Hab eine Klasse global gemacht, und schon gings...


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: