C++ extern

Programovacie jazyky, rady, poradňa...
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

C++ extern

Príspevok od používateľa mnichovcan »

Zdravim,

hram sa s Orbiter 2016. Pouzivam OrbConnect dllko ktore vytvori tcp server.

K tomu dllku su aj zdrojove kody. Tak som si to trochu upravoval.
Dnes som chcel vytvorit svoju funkciu.

Kód: Vybrať všetko

string VesselCommandParser::subscribedData() {

	VESSEL2* pVessel = 0;
	OBJHANDLE objH = NULL;

	// Ziskanie aktualneho sledovaneho objektu napr. Raketa 
	objH = oapiGetFocusObject();
	*pVessel = (VESSEL2*)oapiGetVesselInterface(objH);

	string altitude = getAltitude(pVessel);
	string acceleration = getAccel(pVessel);

	return altitude + "," + acceleration;

}
VESSEL2 je externa trieda z sdk toho simulatora. Ked som tu funkciu pridal tak to piše error ze nerozpozna VESSEL2.
Ale tak ako som to ja pouzil je to tam pouzite xkrat v roznych funkciach aj v triede VesselCommandParser a vtedy sa dll vytvori.
Pokial len zakomentujem obsah svojej funkcie a dam vratit len nejaky string tak to je ok.

Error

Chyba LNK2019 Nerozpoznaný externí symbol "__declspec(dllimport) public: class VESSEL2 & __thiscall VESSEL2::operator=(class VESSEL2 &&)" (__imp_??4VESSEL2@@QAEAAV0@$$QAV0@@Z) odkazovaný ve funkci "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall VesselCommandParser::subscribedData(long)" (?subscribedData@VesselCommandParser@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@J@Z) OrbConnect C:\Users\lkkar\Desktop\OrbConnect-3.19\OrbConnect-3.19\Orbitersdk\samples\OrbConnect\OrbConnect\VesselCommandParser.obj 1
Nechapem preco v mojej funkcii to nejde.
?

//autoeditácia príspevku (07 Okt 2019, 18:04)
mnichovcan napísal:Zdravim,

hram sa s Orbiter 2016. Pouzivam OrbConnect dllko ktore vytvori tcp server.

K tomu dllku su aj zdrojove kody. Tak som si to trochu upravoval.
Dnes som chcel vytvorit svoju funkciu.

Kód: Vybrať všetko

string VesselCommandParser::subscribedData() {

	VESSEL2* pVessel = 0;
	OBJHANDLE objH = NULL;

	// Ziskanie aktualneho sledovaneho objektu napr. Raketa 
	objH = oapiGetFocusObject();
	*pVessel = (VESSEL2*)oapiGetVesselInterface(objH);

	string altitude = getAltitude(pVessel);
	string acceleration = getAccel(pVessel);

	return altitude + "," + acceleration;

}
VESSEL2 je externa trieda z sdk toho simulatora. Ked som tu funkciu pridal tak to piše error ze nerozpozna VESSEL2.
Ale tak ako som to ja pouzil je to tam pouzite xkrat v roznych funkciach aj v triede VesselCommandParser a vtedy sa dll vytvori.
Pokial len zakomentujem obsah svojej funkcie a dam vratit len nejaky string tak to je ok.

Error

Nechapem preco v mojej funkcii to nejde.
?
Ja som ID..T .
Tu chybala (VESSEL2*)oapiGetVesselInterface(objH); medzera -> (VESSEL2*) oapiGetVesselInterface(objH);
Napísať odpoveď