GTA Vice City > Программирование
Написание плагина. Настройка проекта
Shagg_E:
Окно Windows
xanser:
А я бы хотел полноценное окно для самой игры. Мне кажется widescreen вайсу не подходит и приходится использовать олдскульный квадратный экран, да и удобно было бы следить за происходящим в системном трее.
DK можно уточнить? Раньше плагин подключался в виде функции в такой конструкции:
--- Код: C++ ---BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: LoadViceCityPlugin(); break; case DLL_PROCESS_DETACH: break; } return TRUE;}
В твоем варианте это все уже не нужно и достаточно создать экземпляр класса, что автоматически вызовет конструктор и по пути все пропатчит?
DK:
Shaggy, конкретно по этому не планировал делать туториал. Но можно глянуть, как это сделано в примерах RenderWare. Наверняка там MFC используется.
xanser, да. Так тоже можно. А если надо что-то сделать при детаче - нужно писать это в деструктор.
--- Код: C++ ---class MyPlugin{public: MyPlugin(){ // on attach } ~MyPlugin(){ // on detach }}; MyPlugin myPlugin; // создали экземпляр класса в глобальном пространстве (глобальный обьект)
--- Цитировать ---Объявление функции в глобальной области видимости вводит глобальную функцию, а объявление переменной – глобальный объект. Глобальный объект существует на протяжении всего времени выполнения программы. Время жизни глобального объекта начинается с момента запуска программы и заканчивается с ее завершением.
--- Конец цитаты ---
Т.е. обьект будет создан при аттаче dll (будет вызван конструктор), а разрушен - при детаче (будет вызван деструктор).
Sektor:
xanser, да потому-что объект будет создан, так сказать компилятором и уничтожен тоже, иначе говоря компилятор позаботиться обо всем сам, в данном случае.
DK:
Вынесено в шапку.
Навигация
Перейти к полной версии