Ich habe versucht, eine RGBA-Farbe in eine UINT32 zu konvertieren, um sie in der IFW1FontWrapper-> DrawString-Funktion zu verwenden, aber sie bringt das Spiel zum Absturz.FW1FontWrapper IFW1ColorRGBA
IFW1ColorRGBA *color;
color->SetColor(r, g, b, a);//Crash
UINT32 clr = color->GetColor32();
color->Release();
r, g, b, ist eine Art Jeder Schwimmer kann mir helfen, dies immer zu arbeiten?
Nun, natürlich der Code nicht funktioniert hat. Ich sollte nicht kopiert und eingefügt werden. Ihre Frage hat uns nur gesagt, dass Sie DirectX 11 verwenden, aber es gibt keine DirectX-Schnittstelle mit dem Namen IFW1ColorRGBA oder FW1FontWrapper. Dies muss eine Klassenbibliothek sein, die du irgendwo bekommen hast oder etwas, das du selbst geschrieben hast. Wie erwarten Sie, dass wir das wissen, wenn Sie uns das nicht sagen? Ich hatte also keine Ahnung, welche Funktion mit dieser Klassenbibliothek aufgerufen werden sollte, um eine Farbe zu erstellen. Im Allgemeinen würden Sie in DirectX QueryInterface verwenden. Anscheinend ist das anders. Gut zu sehen, dass du es verblüfft hast. –
Sie sollten wahrscheinlich noch überprüfen, ob CreateColor erfolgreich war. Wenn es sich um eine standardmäßige COM-basierte Schnittstelle handelt, wird ein HRESULT zurückgegeben, das Sie mithilfe des SUCCEEDED-Makros auf Erfolg überprüfen. Andernfalls führt die Dereferenzierung von pColor immer noch zu einem Absturz, wenn die Funktion die Farbe nicht erstellen kann. –
Ok, ich werde das tun, und ich verwende die FW1FontWrapper-Bibliothek für die Zeichnung – Talococh