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;
}