提示コードですがReFormatString();関数の可変長引数で取得した文字列を下部のgetTexture();関数の可変長引数に代入したいのですが
int a = 0; ReFormatString("font.ttf",10,"%d",a);
となった時に画面に表示される文字がおかしくなります。1と表示されます。数値は関係なく
##やりたいこと
可変長引数を取る関数の中でその可変長引数を引数に取る関数を正常に動作させる方法が知りたい。
cpp
1// ##################################### 固定文字列を変更 ##################################### 2void FrameWork::Text::ReFormatString(const char* font, int size, const char* str, ...) 3{ 4 //フォントサイズ変更 5 if (fontSize != size) 6 { 7 fontSize = size; 8 FT_Set_Pixel_Sizes(face, 0, fontSize); //ピクセルサイズを指定 9 } 10 11 if ( (fontName != std::string(font)) && (font != NULL) ) 12 { 13 fontName = std::string(font); //フォント変更 14 std::cout << fontName << std::endl; 15 //フェイス作成 16 if (FT_New_Face(ft, fontName.c_str(), 0, &face) != 0) 17 { 18 std::cerr << "FreeType フォントを読み込めません。" << std::endl; 19 assert(0); 20 } 21 22 FT_Set_Pixel_Sizes(face, 0, fontSize); //ピクセルサイズを指定 23 24 25 fixationText->clear(); 26 *fixationText = getTexture(str); 27 28 } 29}
cpp
1std::vector<Character> getTexture(const char* str,...) 2{ 3///テクスチャを生成 4}
回答4件
あなたの回答
tips
プレビュー