А, я понял почему у Вас такая проблема возникла. Это срабатывает в Heap.REGMOD:
Код:
ASSERT(LEN(name$) < ModNameLen, 114);
, где ModNameLen = 32
Что тоже не так уж мало. Чем Вас не устраивает макс. длина имени модуля 32 и этот ASSERT?
Я могу увеличить до 48, но сильно большого смысла в этом не усматриваю. Чем больше это число — тем больше памяти будет жрать программа, имеющая много модулей. Это не так уж значительно, но такие расходы накапливаются.
Получается, что при компиляции макс. длина имени модуля подпадает под макс. длину идента OPS.MaxIdLen = 48, а в рантайме при регистрации модуля в реестре модулей в качестве макс. длины используется Heap.ModNameLen = 32
Возможно, это немного несбалансированно, и надо сделать эти числа одинаковыми. Тогда будет предупреждать в момент компиляции. А Вам и правда нужна такая огромная длина идентов? Помнится, я увеличил OPS.MaxIdLen с 32 (в оригинальном Ofront'е) до 48 исключительно из-за таких длинных идентов в WinAPI, там надо. Но чем больше это число — тем больше памяти будет жрать транслятор.