Quella classe AnsiString non posso usarla (non provo con C++ Builder) e non so se puo' essere utilizzata ...
Ti faccio un esempio "di base", addirittura senza metodi che impostano/leggono membri privati ... puoi adattarlo tu ...
Primo programma
codice:
#include <windows.h>
class CCliente
{
public:
char nome[100];
char cognome[100];
int eta;
CCliente(char *xnome, char *xcognome, int xeta);
~CCliente();
};
CCliente::CCliente(char *xnome, char *xcognome, int xeta)
{
strcpy(nome, xnome);
strcpy(cognome, xcognome);
eta=xeta;
}
int main()
{
CCliente *cliente = new CCliente("Nome", "Cognome", 22);
HANDLE hMapMemoryObject = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(CCliente), "clienteprova");
LPVOID pBufObject = MapViewOfFile(hMapMemoryObject, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(CCliente));
CopyMemory(pBufObject, cliente, sizeof(CCliente));
printf("Attesa per esecuzione secondo programma ...\n");
getchar();
return 0;
}
Secondo programma
codice:
#include <windows.h>
class CCliente
{
public:
char nome[100];
char cognome[100];
int eta;
CCliente(char *xnome, char *xcognome, int xeta);
~CCliente();
};
CCliente::CCliente(char *xnome, char *xcognome, int xeta)
{
strcpy(nome, xnome);
strcpy(cognome, xcognome);
eta=xeta;
}
int main()
{
HANDLE hMapMemoryObject = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(CCliente), "clienteprova");
CCliente *cliente = (CCliente *)MapViewOfFile(hMapMemoryObject, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(CCliente));
printf("%s %s %d\n", cliente->nome, cliente->cognome, cliente->eta);
return 0;
}