У меня проблемы с структуры при попытке сделать это в C++ (Visual Studio):Ошибка с Struct в C++
memoria.cpp
struct readMem {
UINT32 startAdress;
UINT32 endAdress;
UINT8(*memoryHandler) (UINT32);
void *pUserData;
};
struct writeMem {
UINT32 startAdress;
UINT32 endAdress;
void (*memoryHandler) (UINT32, UINT8);
void *pUserData;
};
void memoria::writeRAMBankEnable(UINT32 a, UINT8 b) {
}
void memoria::writeROMBankSelect(UINT32 a, UINT8 b) {
}
void memoria::writeRAMROMModeSelect(UINT32 a, UINT8 b) {
}
void memoria::writeVRAM(UINT32 a, UINT8 b) {
}
void memoria::writeSRAM(UINT32 a, UINT8 b) {
}
void memoria::writeRAM(UINT32 a, UINT8 b) {
}
void memoria::writeERAM(UINT32 a, UINT8 b) {
}
void memoria::writeSprite(UINT32 a, UINT8 b) {
}
void memoria::writeIOM(UINT32 a, UINT8 b) {
}
void memoria::writeHRAM(UINT32 a, UINT8 b) {
}
struct writeMem implWriteMem[] = {
{ 0x0000, 0x1FFF, writeRAMBankEnable, NULL},
{ 0x4000, 0x5FFF, writeROMBankSelect, NULL},
{ 0x6000, 0x7FFF, writeRAMROMModeSelect, NULL},
{ 0x8000, 0x9FFF, writeVRAM, NULL},
{ 0xA000, 0xBFFF, writeSRAM, NULL},
{ 0xC000, 0xDFFF, writeRAM, NULL},
{ 0xE000, 0xFDFF, writeERAM, NULL},
{ 0xFE00, 0xFE9F, writeSprite, NULL},
{ 0xFF00, 0xFF7F, writeIOM, NULL},
{ 0xFF80, 0xFFFF, writeHRAM, NULL},
{ (UINT32) - 1, (UINT32) - 1, NULL, NULL}
};
memoria.h
#pragma once
#include <stdlib.h>
#include <stdio.h>
#include "defs.h"
ref class memoria
{
public:
memoria(void);
private:
FILE *file;
UINT8 *mem;
public:
void writeRAMBankEnable(UINT32, UINT8);
void writeROMBankSelect(UINT32, UINT8);
void writeRAMROMModeSelect(UINT32, UINT8);
void writeVRAM(UINT32, UINT8);
void writeSRAM(UINT32, UINT8);
void writeRAM(UINT32, UINT8);
void writeERAM(UINT32, UINT8);
void writeSprite(UINT32, UINT8);
void writeIOM(UINT32, UINT8);
void writeHRAM(UINT32, UINT8);
UINT8 readRAMBankEnable(UINT32);
UINT8 readROMBankSelect(UINT32);
UINT8 readRAMROMModeSelect(UINT32);
UINT8 readVRAM(UINT32);
UINT8 readSRAM(UINT32);
UINT8 readRAM(UINT32);
UINT8 readERAM(UINT32);
UINT8 readSprite(UINT32);
UINT8 readIOM(UINT32);
UINT8 readHRAM(UINT32);
void Meminitialize();
void MemcleanUp();
void writeByte(UINT32, UINT8);
UINT8 readByte(UINT32);
void writeWord(UINT32, UINT16);
UINT16 readWord(UINT32);
};
Visual Studio C++ дает мне эту ошибку :
1> memoria.cpp (75): ошибка C2065: 'writeRAMBankEnable': необъявленный идентификатор
1> memoria.cpp (76): ошибка C2065: 'writeROMBankSelect': необъявленный идентификатор
1> memoria.cpp (77): ошибка C2065: 'writeRAMROMModeSelect': необъявленный идентификатор
1> memoria.cpp (78): ошибка C2065: 'writeVRAM': необъявленный идентификатор
1> memoria.cpp (79): ошибка C2065: 'writeSRAM': необъявленный идентификатор
1> memoria.cpp (80): ошибка C2065: 'writeRAM': необъявленный идентификатор
1> memoria.cpp (81) : ошибка C2065: «writeERAM»: необъявленный идентификатор
1> memoria.cpp (82): ошибка C2065: 'writeSprite': необъявленный идентификатор
1> memoria.cpp (83): ошибка C2065: 'writeIOM': необъявленный идентификатор
1> Мемория. CPP (84): ошибка C2065: 'writeHRAM': необъявленный идентификатор
1> memoria.cpp (169): ошибка C2065: 'implReadMem': необъявленный идентификатор
1> memoria.cpp (179): ошибка C2065: «implReadMem»: необъявленный идентификатор
Для записи я объявил все функции в моих memoria.h, но все структуры и implWriteMem [], конечно. В любом случае, как я могу это решить?
P.S. Он хорошо работал в чистом C.
Спасибо!
обеспечивает заголовок, невозможно сказать, что происходит – Anycorn
Pure C не имеет пространства имен. Как это работало? –
Вы пытаетесь создать функции члена DIY? О, боже !!!! – Anycorn