Változó érték állítása másik cpp fájlból

Indította Zhymer, 2017-12-07, 19:09:03

Üdv, tehát adott a char.cpp/.h és az offlineshop_manager.cpp/.h

char.cpp-ben az OpenMyOfflineShop részhez hozzáadtam ezt:
m_dwOffShopChSw = get_dword_time();
(+char.h fájlba: DWORD            m_dwOffShopChSw;)

Oké ez eddig jó, viszont szeretnék a m_dwOffShopChSw-nek az offlineshop_manager.cpp-ben is állítani értéket.
Ezt hogy lehet? Google-n rákeresve hogy extern-el lehet, de sehogy sem szeretné elfogadni.


"Hölgyeim és uraim, íme a bukott bálvány!"

2017-12-07, 19:11:23 #1 Utolsó szerkesztés: 2017-12-07, 19:19:25 Szerző: Distraught
Csinálj egy függvényt, ami értéket állít neki és a másik fájlból hívd meg azt.

C++ programmer at Gameloft

Szerinted tökre megy a másik fájlból meghívás, ha értéket sem tudok adni egy változónak másik fájlból?:D
"Hölgyeim és uraim, íme a bukott bálvány!"

nézd meg, hogy hogyan hív megy egy másik fájlból függvényt és az alapján menni fog :D

C++ programmer at Gameloft

2017-12-07, 19:22:57 #4 Utolsó szerkesztés: 2017-12-07, 19:35:06 Szerző: udvatt108
Char.cpp

Keresd meg ezt:

void CHARACTER::SetComboSequence(BYTE seq)
{
m_bComboSequence = seq;
}

BYTE CHARACTER::GetComboSequence() const
{
return m_bComboSequence;
}


Alá beilleszted ezt közvetlen:

void CHARACTER::SetOffShopChSw(DWORD newVal)
{
m_dwOffShopChSw = newVal;
}

DWORD CHARACTER::GetOffShopChSw() const
{
return m_dwOffShopChSw;
}


Char.h

Kered meg ezt:

void SetComboSequence(BYTE seq);
BYTE GetComboSequence() const;


Alá beilleszted ezt közvetlen:

void SetOffShopChSw(DWORD newVal);
DWORD GetOffShopChSw() const;


Ha más fájlban szeretnéd az értékét állítani vagy kikérni, mindig az adott fájl elejére az include-ek közé valahova, ha még nincs ott rakd:

#include "char.h"


Használat ha az értéket változtatni szeretnéd más fájlban:

ch->SetOffShopChSw("Az új érték ");



Használat ha az értéket ki szeretnéd kérni más fájlban:

ch->GetOffShopChSw();


Üzenet összefésülés: 2017-12-07, 19:26:23

Frissítettem, mert az adat típus helytelen volt az adat kikérésnél. Most már helyes.

Üzenet összefésülés: 2017-12-07, 19:32:33

Nyilván menni fog a ch-> deklarálása mielőtt funkciót hívnál ki belőle. :D

De ha nem menne, ez egy pl.:
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(Játékos id vagy az id-t tároló változó);

Tehát teljes példa:

LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(CharacterID);
DWORD kecske = ch->GetOffShopChSw();
Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.

Működik, köszi :)
"Hölgyeim és uraim, íme a bukott bálvány!"