если операцию индекса можно перегрузить, то это меняет дело например, если конструкцию вида
XBYTE[addr] = value;
можно эффективно перегрузить, чтобы объект XBYTE отслеживал и индекс (addr) и присваивание =, то меня это вполне устроит. Внешний интерфейс у dll легко делается си-совместимым через extern "C".
Спасибо за наводку на книжку. Поищу.