Aktuelle Zeit: 29.04.2024, 11:45

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 06.12.2007, 17:18 
Offline

Registriert: 06.12.2007, 17:03
Beiträge: 9
Moin zusammen,

so langsam bin ich mit meinem Latein am Ende und stehe kurz davor, in die Tischkante zu beißen.

Ich hab ein Projekt (bisher nur aus GUI bestehend), welches ich unter Vista mit VS2005 entwickle. Das Ding läuft unter Vista auch ganz klasse, nur unter XP nicht. Weder die Debug, noch die Release-Version. Ich hab allerdings noch nicht versucht das unter XP zu kompilieren. (Werd ich wohl oder übel nochmal XP rauskramen müssen)

Hat jemand eine Idee wo das Problem liegen könnte?

Hier mal die Code-Auszüge, die offensichtlich für den Fehler verantwortlich sind:

CustomWndProc...
Code:
static LRESULT CALLBACK CustomWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch (message)
  {
  case WM_COMMAND:
    {
      HWND hwndCtl = (HWND)lParam;
      int code = HIWORD(wParam);

      if (hwndCtl == g_hOKButton)
      {
        DestroyWindow(hWnd);
        PostQuitMessage(0);
        return 0;
      }
    }
    break;
  case WM_DESTROY:
    PostQuitMessage(0);
    return 0;

  }

  return DefWindowProc(hWnd, message, wParam, lParam);
}


Und die WinMain...
Code:
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   char* pcCmdLine,
                   int iShowCmd)
{
 
  hInstance = 0;
 
  const char* Win32ClassName = "WindowTest";

  DWORD style = WS_POPUP | WS_MAXIMIZE;

  g_hWnd = CreateWindow(Win32ClassName, "Output Window",
    style, 0, 0, g_iWidth, g_iHeight,
    NULL, NULL, hInstance, NULL);

  RECT clientRect;
  GetClientRect(g_hWnd, &clientRect);

  g_pDevice = createDevice(video::EDT_DIRECT3D9, core::dimension2d<s32>(g_iWidth, g_iHeight), 32, true, true);

  video::IVideoDriver* driver = g_pDevice->getVideoDriver();

  g_pDevice->setWindowCaption(L"Output Window");


  pGame   = new CGameGD;
  pGame->Init();
  pGame->Load();

  pGame->setGame2D(new CGame2D);
  CGame2D* game2D = pGame->getGame2D();
  game2D->Init();
  game2D->Load();

  g_eGameState = GS_GAME2D;


Eingebunden sind die irrlicht.h und die Windows.h (aus dem Server 2003 SDK)
Kompilieren und Ausführen unter Vista geht, wie gesagt, vollkommen fehlerfrei.

XP gibt beim (versuchten Start folgende Fehlermeldung aus)
"Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren."

Die Anwendung versucht zu starten, die Auflösung wird auch noch geändert, aber dann sofort Kommando zurück und Fehlerpopup... Scheint also irgendwo direkt nach dem Erzeugen des Irrlicht-Devices aufzutreten, der Fehler.

Danke schonmal für die Hilfe
Sebastian


Zuletzt geändert von cebassion am 07.12.2007, 01:17, insgesamt 4-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 06.12.2007, 17:25 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Wozu benutzt du das Fenster? Wenn du, wonach es in den Codeschnipsel aussieht, damit nichts machst, was Irrlicht nicht auch ohne externes Fenster kann, solltest du das besser weglassen.

Ansonsten kann ich da als Linux-Benutzer recht wenig sagen. Btw, wenn du auf die WinAPI verzichtest, vebessert das deutlich die Plattformunabhängigkeit :p

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 06.12.2007, 17:27 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
ich glaube das hängt weniger an irrlicht als an der runtime von microsoft. da solltest du die ms70r.dll oder wie auch immer sie heißen (so ganz bestimmt nicht ;) ) direkt in das verzeichnis kopieren damit die richtigen unter xp auch da sind..

_________________
yo. life's so bloody short.
Ihr dachtet Schulfernsehn sei die ultimative Folter? Falsch: Fahrstuhlmusik, extra leise.


Nach oben
 Profil  
 
BeitragVerfasst: 06.12.2007, 17:36 
Offline

Registriert: 06.12.2007, 17:03
Beiträge: 9
Ja an irgendeine dll hatte ich auch schon gedacht ;) Danke schonmal für den Tipp. Jetzt muss ich mal forschen, welche dafür zuständig ist.

Ich habe auch grad noch DirectX im Auge... Wie ich erfahren hab, hat der jenige, bei dem das Auftritt vllt die falsche DX-Version... Und ich hab ihn extra noch gefragt, ob er die 9.0c hat ^^

edit: Das externe Fenster wird für die Auswahl der Auflösung benutzt (ist momentan aber noch nicht eingebaut, von daher Overhead... ich nehms mal raus ;) )


Nach oben
 Profil  
 
BeitragVerfasst: 06.12.2007, 19:25 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
für die auswahl der auflösung kannst du auch die irrlicht gui mit software render und 800x600 oder so nehmen. das dürfte wohl auf jedem system laufen

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
BeitragVerfasst: 07.12.2007, 00:27 
Offline

Registriert: 06.12.2007, 17:03
Beiträge: 9
Okay werde ich mal antesten :)

Ich habe mir jetzt mal den Process Monitor von MS geholt und geschaut, wo das Programm abbricht: Hmmm irgendwie gleich zu Beginn. Die ntdll.dll wird noch geladen und danach is Feierabend...

Es liegt entweder an Visual Studio (was auf dem Testrechner nicht installiert ist) oder an Vista (auf dem Zielrechner läuft, wie oben genannt, XP)

Ich könnt ja durchdrehen ;)


Nach oben
 Profil  
 
BeitragVerfasst: 07.12.2007, 00:53 
Offline

Registriert: 06.12.2007, 17:03
Beiträge: 9
Sooo die Visual C++ Runtime DLLs kann ich ausschließen... Die habe ich getestet, ohne Erfolg


Nach oben
 Profil  
 
BeitragVerfasst: 07.12.2007, 01:16 
Offline

Registriert: 06.12.2007, 17:03
Beiträge: 9
Soooo... ich habe das Problem gelöst... es läuft :)

Bei den Compile- und Link-Einstellungen des Projekts habe ich jetzt einfach mal alle Standard-DLLs und -LIBs ignoriert und sie direkt in die exe eingebunden. Irgendeine davon hat wohl gefehlt, wie vermutet. Nachdem diese jetzt in der ausführbaren Datei stecken, klappt alles.

Danke für die Hilfe und die Tipps


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de