Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

21

02.09.2012, 22:39

Bei Sleep etc. solltest du unbedingt bedenken, dass die Zeit nicht ganz exakt ist. Für die Simulation solltest du also auf jeden Fall die tatsächlich vergangene Zeit messen und nicht von einer konstanten Framerate ausgehen.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

22

02.09.2012, 22:39

Hab meinen letzten Post nochmal editiert, aber dot hat das ja nochmal bestätigt.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

23

02.09.2012, 22:42

Also ich finde 30-35 ok. Aber das ist Geschmackssache. :)

Also mit der Funktion WINAPI Sleep((DWORD)(1000)); komme ich leider nicht weiter. Da diese Funktion in meinem Programm nicht bekannt ist, ich die library nicht kenne und auch nicht den dazugehörigen Header.


Es wäre nett, wenn mir jemand sagen könnte welche library bzw. Header ich hinzufügen muss.


Es wäre auch nett, wenn mir jemand noch eine andere Methode sagen könnte.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

24

02.09.2012, 22:44

Steht doch unten "Header WinBase.h (include Windows.h)"
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

25

02.09.2012, 22:45

Wie dort steht: windows.h

Am besten so:

C-/C++-Quelltext

1
2
3
#define WIN32_LEAN_AND_MEAN  // nur das wichtigste inkludieren
#define NOMINMAX  // die Makros min() und max() nicht definieren (die machen sehr gern Probleme, Makros eben...)
#include <windows.h>


Den Cast nach DWORD kannst du dir übrigens sparen...

26

02.09.2012, 22:45

API : Windows API aka WinApi
Header: windows.h

27

02.09.2012, 22:56

Also ich habe nun

Quellcode

1
2
3
4
#define WIN32_LEAN_AND_MEAN#define NOMINMAX

#include <Windows.h>#include <WinBase.h>
#include <TriBase.h>#include <D3DX9.h>#include <dinput.h>#include <string.h>#include "..\\Allgemeines\\InitWindow.h"#include "..\\Allgemeines\\Direct3DEnum.h"#include "..\\Allgemeines\\InitDirect3D.h"#include "resource.h"#include <math.h>#include "ground.h"



windows.h und winbase.h hinzugefügt.

und versucht die Funktion

Quellcode

1
WINAPI Sleep ((DWORD) 1000);


aufzurufen.

Jedoch erhalte ich für Sleep: this deklaration has no storage or type specifier

wenn ich

Quellcode

1
void WINAPI Sleep (DWORD);



und die Funktion später durch

Quellcode

1
Sleep((DWORD) 1000);


innerhalb der Rendermethode aufrufe so erhalte ich diverse Fehlermeldungen.

Zitat

Zitat

1>c:\users\hexadezimale\desktop\3d-spieleprogrammierung-update\tribase\dependencies\include\memfile.h(71): error C3861: 'min': identifier not found

Zitat

1>c:\users\hexadezimale\desktop\3d-spieleprogrammierung-update\eigene projekte\geogame0\main.cpp(78): warning C4273: 'Sleep' : inconsistent dll linkage

Zitat

1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winbase.h(4726) : see previous definition of 'Sleep'

Zitat

1>c:\users\hexadezimale\desktop\3d-spieleprogrammierung-update\eigene projekte\geogame0\main.cpp(85): warning C4229: anachronism used : modifiers on data are ignored

Zitat

1>c:\users\hexadezimale\desktop\3d-spieleprogrammierung-update\eigene projekte\geogame0\main.cpp(85): error C2365: 'MsgWaitForMultipleObjects' : redefinition; previous definition was 'function'

Zitat

1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winuser.h(5542) : see declaration of 'MsgWaitForMultipleObjects'

Zitat

1>c:\users\hexadezimale\desktop\3d-spieleprogrammierung-update\eigene projekte\geogame0\main.cpp(85): error C2078: too many initializers


Wenn ich das

Quellcode

1
void WINAPI Sleep (DWORD);


weglasse
so und die Funktion mittels

Quellcode

1
DWORD dword=10000;  Sleep(dword);


aufrufe so erhalte ich

Zitat

1>c:\users\hexadezimale\desktop\3d-spieleprogrammierung-update\tribase\dependencies\include\memfile.h(71): error C3861: 'min': identifier not found

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »hetlock« (02.09.2012, 23:03)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

28

02.09.2012, 23:01

winbase.h solltest du nicht direkt inkludieren, sondern nur windows.h. Wenn du die TriBase inkludierst, sollte die windows.h allerdings wohl sowieso schon indirekt inkludiert und Sleep() damit sowieso schon bekannt sein...

29

02.09.2012, 23:05

TOLL so jetzt hat das funktioniert nachdem ich winBase.h

Quellcode

1
#define WIN32_LEAN_AND_MEAN#define NOMINMAX
nicht mehr hinzugefügt habe hat es funktioniert!!!!!

Ok das mit sleep hat funktioniert!!!

Aber nun wie auch bei MSdn erwähnt kann das Programm keine Windows Messages mehr empfangen und so ist keine Steuerung möglich und mann kann das Programm auch nicht beenden.

Also ich wäre froh wenn sich noch jemand damit befassen würde um eine Lösung für das Problem zu finden.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »hetlock« (02.09.2012, 23:17)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

30

02.09.2012, 23:23

Ich versteh nicht ganz, was genau ist nun das Problem?

Werbeanzeige