1>cb.c(51): error C2061: syntax error : identifier 'SaveConfiguration'
1>cb.c(51): error C2059: syntax error : ';'
1>cb.c(51): error C2059: syntax error : 'type'
1>cb.c(52): error C2061: syntax error : identifier 'LoadConfiguration'
1>cb.c(52): error C2059: syntax error : ';'
1>cb.c(52): error C2059: syntax error : 'type'
1>cb.c(122): error C2061: syntax error : identifier 'SaveConfiguration'
1>cb.c(122): error C2059: syntax error : ';'
1>cb.c(122): error C2059: syntax error : 'type'
1>cb.c(127): error C2061: syntax error : identifier 'LoadConfiguration'
1>cb.c(127): error C2059: syntax error : ';'
1>cb.c(127): error C2059: syntax error : 'type'
1>
1>Build FAILED.
Es solo un archivo .c en el proyecto. Aquí está el código:C2061 Error de sintaxis (identificador)
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <tchar.h>
typedef struct _Configuration
{
int KeyActivate;
int BlockWidth;
int BlockHeight;
double HueStart;
double HueEnd;
double SaturationStart;
double SaturationEnd;
double ValueStart;
double ValueEnd;
} Configuration;
typedef struct _DIBSection
{
HDC ScreenDC;
HDC WindowDC;
HDC MemoryDC;
HBITMAP ScreenBMPHandle;
BITMAP ScreenBMP;
} DIBSection;
typedef struct _Thread
{
HANDLE Handle;
unsigned Id;
} Thread;
typedef struct _Window
{
HANDLE Handle;
HDC DC;
int Width;
int Height;
int Top;
int Left;
} Window;
__declspec (dllexport) int Initialize (void);
unsigned __stdcall Start (void * Arguments);
void LoadDefaultConfiguration (Configuration * Config);
bool SaveConfiguration (Configuration * Config, LPTSTR FilePath);
bool LoadConfiguration (Configuration * Config, LPTSTR FilePath);
Thread MainThread;
Window Screen;
Configuration Settings;
BOOL WINAPI DllMain (HINSTANCE Instance, DWORD Reason, LPVOID Reserved)
{
switch (Reason)
{
case DLL_PROCESS_ATTACH:
// TODO: Load settings from file
LoadDefaultConfiguration (& Settings);
// Create main thread
MainThread.Handle = (HANDLE) _beginthreadex (
NULL,
0,
Start,
NULL,
0,
& MainThread.Id
);
if (MainThread.Handle)
{
SetThreadPriority (MainThread.Handle, THREAD_PRIORITY_BELOW_NORMAL);
}
else
{
MessageBox (NULL, L"Unable to create main thread; exiting", L"Error", MB_OK);
ExitProcess (0);
}
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
__declspec (dllexport) int Initialize (void)
{
return 1;
}
unsigned __stdcall Start (void * Arguments)
{
return 1;
}
void LoadDefaultConfiguration (Configuration * Config)
{
Config->BlockHeight = 50;
Config->BlockWidth = 100;
Config->HueEnd = 0.00;
Config->HueStart = 0.00;
Config->KeyActivate = VK_SHIFT;
Config->SaturationEnd = 0.00;
Config->SaturationStart = 0.00;
Config->ValueEnd = 0.00;
Config->ValueStart = 0.00;
}
bool SaveConfiguration (Configuration * Config, LPTSTR FilePath)
{
return true;
}
bool LoadConfiguration (Configuration * Config, LPTSTR FilePath)
{
return true;
}
Línea 51 es
bool SaveConfiguration (Configuration * Config, LPTSTR FilePath);
Este error puede deberse a archivos de encabezado mutuamente dependientes. – Grault