Hallo ich bin grade dabei mir ein paar Helferchen für meine Engine zu schreiben und bin nun beim Input angekommen. Da ich versuche diesen code wiederverwertbar zu halten möchte ich das ganze als Dll bereitstellen. Nun das Problem, in meiner InputManager Klasse möchte ich ein "std::map<BYTE,std::vector<FunctionsPointer>>" erstellen allerdings bekomme ich die Warnung:
|
Quellcode
|
1
|
Warnung 1 warning C4251: 'Input::InputManager::m_subscribtionList': class 'std::map<_Kty,_Ty>' erfordert eine DLL-Schnittstelle, die von Clients von class 'Input::InputManager' verwendet wird c:\users\...\inputmanager.hpp 33 1 Engine
|
Im Internet habe ich Lösungsansätze gefunden die mit
|
C-/C++-Quelltext
|
1
|
template class __declspec(dllexport) std::map<"Definition die man haben möchte>
|
arbeiten. Allerdings wurde auch gewarnt das die Dll dann nur noch mit der gleichen Compiler Version funktioniert und es zu Programmfehler kommen kann.
Hat jemand eine Idee wie ich das ganze anders lösen kann ohne auf die Funktionalität von map und vector zu verzichten ?