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

1

08.08.2013, 15:11

C++ programmierungs fehler [Bitte um hilfe]

guten tag :)

bin erst seit heute registriert und vielleicht kann mir ja hier einer helfen..
also mein problem ist ich hab 1 miesen fehler beim erstellen...

error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?



C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"#include <windows.h>
#include <d3d8.h>#pragma comment(lib, "d3d8.lib")
typedef HRESULT (WINAPI* CreateDevice_Prototype)        (LPDIRECT3D8, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE8*);typedef HRESULT (WINAPI* Reset_Prototype)               (LPDIRECT3DDEVICE8, D3DPRESENT_PARAMETERS*);typedef HRESULT (WINAPI* EndScene_Prototype)            (LPDIRECT3DDEVICE8);typedef HRESULT (WINAPI* DrawIndexedPrimitive_Prototype)(LPDIRECT3DDEVICE8, D3DPRIMITIVETYPE, UINT, UINT, UINT, UINT);
CreateDevice_Prototype         CreateDevice_Pointer         = NULL;Reset_Prototype                Reset_Pointer                = NULL;EndScene_Prototype             EndScene_Pointer             = NULL;DrawIndexedPrimitive_Prototype DrawIndexedPrimitive_Pointer = NULL;
HRESULT WINAPI Direct3DCreate8_VMTable    (VOID);HRESULT WINAPI CreateDevice_Detour        (LPDIRECT3D8, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE8*);HRESULT WINAPI Reset_Detour               (LPDIRECT3DDEVICE8, D3DPRESENT_PARAMETERS*);HRESULT WINAPI EndScene_Detour            (LPDIRECT3DDEVICE8);HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE8, D3DPRIMITIVETYPE, UINT, UINT, UINT, UINT);
PDWORD Direct3D_VMTable = NULL; 
BOOL WINAPI DllMain(HINSTANCE hinstModule, DWORD dwReason, LPVOID lpvReserved){  if(dwReason == DLL_PROCESS_ATTACH)  {    DisableThreadLibraryCalls(hinstModule);
    if(Direct3DCreate8_VMTable() == D3D_OK)    return TRUE;  }
  return FALSE;}
HRESULT WINAPI Direct3DCreate8_VMTable(VOID){  LPDIRECT3D8 Direct3D_Object = Direct3DCreate8(D3D_SDK_VERSION);
  if(Direct3D_Object == NULL)  return D3DERR_INVALIDCALL;    Direct3D_VMTable = (PDWORD)*(PDWORD)Direct3D_Object;  Direct3D_Object->Release();
  DWORD dwProtect;
  if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)  {    *(PDWORD)&CreateDevice_Pointer = Direct3D_VMTable[15];    *(PDWORD)&Direct3D_VMTable[15] = (DWORD)CreateDevice_Detour;
    if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), dwProtect, &dwProtect) == 0)    return D3DERR_INVALIDCALL;  }  else  return D3DERR_INVALIDCALL;
  return D3D_OK;}
HRESULT WINAPI CreateDevice_Detour(LPDIRECT3D8 Direct3D_Object, UINT Adapter, D3DDEVTYPE DeviceType, HWND FocusWindow,                  DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* PresentationParameters,                     LPDIRECT3DDEVICE8* Returned_Device_Interface){  HRESULT Returned_Result = CreateDevice_Pointer(Direct3D_Object, Adapter, DeviceType, FocusWindow, BehaviorFlags,                                              PresentationParameters, Returned_Device_Interface);
  DWORD dwProtect;
  if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)  {    *(PDWORD)&Direct3D_VMTable[15] = *(PDWORD)&CreateDevice_Pointer;    CreateDevice_Pointer           = NULL;
    if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), dwProtect, &dwProtect) == 0)    return D3DERR_INVALIDCALL;  }  else  return D3DERR_INVALIDCALL;
  if(Returned_Result == D3D_OK)  {    Direct3D_VMTable = (PDWORD)*(PDWORD)*Returned_Device_Interface;
    *(PDWORD)&Reset_Pointer                = (DWORD)Direct3D_VMTable[14];    *(PDWORD)&EndScene_Pointer             = (DWORD)Direct3D_VMTable[35];    *(PDWORD)&DrawIndexedPrimitive_Pointer = (DWORD)Direct3D_VMTable[71];
    *(PDWORD)&Direct3D_VMTable[14] = (DWORD)Reset_Detour;    *(PDWORD)&Direct3D_VMTable[35] = (DWORD)EndScene_Detour;    *(PDWORD)&Direct3D_VMTable[71] = (DWORD)DrawIndexedPrimitive_Detour;  }      return Returned_Result;}
HRESULT WINAPI Reset_Detour(LPDIRECT3DDEVICE8 Device_Interface, D3DPRESENT_PARAMETERS* PresentationParameters){  return Reset_Pointer(Device_Interface, PresentationParameters);}
HRESULT WINAPI EndScene_Detour(LPDIRECT3DDEVICE8 Device_Interface){  return EndScene_Pointer(Device_Interface);}
HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE8 Device_Interface, D3DPRIMITIVETYPE Type,                                            UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount){  LPDIRECT3DVERTEXBUFFER8 Stream_Data;  UINT Stride = 0;
  if(Device_Interface->GetStreamSource(0, &Stream_Data, &Stride) == D3D_OK)  Stream_Data->Release();   return DrawIndexedPrimitive_Pointer(Device_Interface, Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);}

bool wallhack;{
if(Stride == 40 && wallhack || Stride == 44 && wallhack)   Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
if((GetAsyncKeyState(VK_NUMPAD1)&1) == 1) //Numpad 1     wallhack = !wallhack;//Start Wallhack}
//code

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

2

08.08.2013, 15:28

Also ich kann dir ganz spontan sagen, dass dieser Code unvollständig ist. Und sollte er das nicht sein, dann ist das der Fehler ;)
Bitte poste nicht so einen Block-Code! Da hat keiner Lust den anzugucken! (Benutze vorher z.B. http://beta.indentcode.net/)
Sollte das nicht der ganze Quelltext sein, dann poste bitte den ganzen. Und sollte er dir zu lang vor kommen dann benutze z.B. http://pastebin.com/.
Und bitte gib die Zeile an, in der der Fehler auftritt. Dann wird dir geholfen :thumbsup:

3

08.08.2013, 15:51

vielen dank für ihre antwort

hier bitte : http://pastebin.com/5f5c9zea

und ja der code is vollständig ;)

der fehler liegt chrisv2.cpp(124) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?

hier sollte was nicht stimmen

bool wallhack;
{

if(Stride == 40 && wallhack || Stride == 44 && wallhack)
Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

4

08.08.2013, 15:51

Schalt mal beim Beitragschreiben von "Editor" auf "Quellcode" um, da oben links. wiederhole das dann nochmal mit dem Quellcode-Posten.
Naja, maximal mit Google und 3 Minuten Zeit hättest du den Fehler ganz einfach selbst gefunden.

C-/C++-Quelltext

1
2
3
4
5
bool wallhack;
{
if(Stride == 40 && wallhack || Stride == 44 && wallhack)   Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
if((GetAsyncKeyState(VK_NUMPAD1)&1) == 1) //Numpad 1     wallhack = !wallhack;//Start Wallhack
}

Die geschwungenen Klammern sind Knackpunkt.
Änders um zu:

C-/C++-Quelltext

1
2
3
bool wallhack;
if(Stride == 40 && wallhack || Stride == 44 && wallhack)   Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
if((GetAsyncKeyState(VK_NUMPAD1)&1) == 1) //Numpad 1     wallhack = !wallhack;//Start Wallhack

und du wirst ein "neues" Problem haben, aber dein altes immerhin nicht mehr.

Zitat von »"Chris Born"«

und ja der code is vollständig ;)

Wir wollen nur das nötigste.
So und von mir noch ein herzliches Willkommen bei sppro! :)

MfG
Check

5

08.08.2013, 15:58

vielen dank nur mehr noch diese 2 fehler dann bin ich ihnen sehr dankbar

chrisv2\chrisv2.cpp(124) : error C2059: Syntaxfehler: 'if'
chrisv2\chrisv2.cpp(125) : error C2059: Syntaxfehler: 'if'

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Chris_Born« (08.08.2013, 16:06)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

08.08.2013, 15:59

Die Klammer an sich ist kein Problem. Aber da steht Code außerhalb einer Funktion. Das ergibt wiederum keinen Sinn. Wäre das in einer Funktion oder Methode, könnte er da klammern, so viel er will, denn das ist legal. Code außerhalb von Funktionen allerdings nicht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige