예제 #1
0
/* Constructeur */
Msg::Msg(const std::string& strMsg){
	initEnum(); //initialise tous les champs de l'enum
	std::string tmpTag, defTag[2];
	int i,numTag;
    std::istringstream ssMsg(strMsg);
    /* Tant qu'il reste des séparateurs */
    while (std::getline(ssMsg, tmpTag, SEP)) {
		std::istringstream ssTag(tmpTag);
		i=0,numTag=0;
		/* Séparation du numéro du tag et de sa valeur */
		while (std::getline(ssTag, defTag[i], EQU)) {
			i++;
		}
		if(i!=2){
			std::cerr << "Erreur: Orthographe du Tag\n";// Traiter l'erreur
		}
		/* Cast en int du numero de tag */
		std::istringstream ssNumTag(defTag[0]);
		ssNumTag >> numTag;
		defineEnum(numTag); 
		vTags.push_back(defTag[1]);
    }
	if(vTags[tagName.MsgType]=="null"){
		std::cerr << "Erreur: Vecteur -> MsgType manquant";// Traiter l'erreur
	}
}
예제 #2
0
// Just a quick helper function
BOOL LoadSprite(std::wstring path, std::wstring filename, CD2D *renderer, CSprite **ppRet)
{
	std::wostringstream ss;
	ss << path.c_str() << L"\\" << filename.c_str();
	CSprite *spr = new CSprite();
	auto bRet = spr->Load(ss.str(), renderer);
	if (!bRet) {
		std::wostringstream ssMsg(L"Failed to load '");
		ssMsg << ss.str().c_str() << "'!";
		MessageBox(NULL, ssMsg.str().c_str(), L"Error", MB_OK | MB_ICONERROR);
		return FALSE;
	}
	*ppRet = spr;
	return TRUE;
}