[an error occurred while processing this directive]
|
Компилятор сопротивляется потому, что запуск не-статической
процедуры требует обязательноой предварительной
загрузки базового регистра.
Например запись:
ClassPtr->SomeRoutine(..)
буквально означает:
1. загрузить базовый регистр адресом конкретного экземпляра класса.
2. после чего запустить процедуру SomeRoutine(...)Поэтому выполнение сразу пункта 2 неправильно.
Просто ахинея. Приведет к бессмысленным последствиям.
Пример, который я приводил ранее просто ошибка конкретного компилятора. Не уверен, что это есть у всех компилеров разных фирм.
У функций static все наоборот.
1. сначала запуск процедуры
2. после чего загрузить базовый регистр, если нужно:
(для доступа к не-статическим членам класса)
static SomeRoutineStatic (...)
{
..
ClassPtr->SomeRoutine___ (...)
..
}Это обычный прием для создания классов-окна, диалога и.т.д.
Поищи в Сети - запросто найдешь исходные тексты.