C ++从静态方法在Windows中设置控制台文本颜色

是否有可能在类中使用静态方法来设置Windows C ++应用程序的控制台的文本颜色? 我的代码如下所示:

Display.h:

class Display { public: Display(); static void setTextColor(int color); }; 

Display.cpp:

 #include <windows.h> #include "Display.h" void Display::setTextColor(int color) { HANDLE cHandle; cHandle = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(cHandle, color); } 

main.cpp中:

 #include <iostream> #include "Display.h" int main(int argc, char *argv[]) { std::cout << "HI"; //Outputs default color Display::setTextColor(9); std::cout << "HI"; //Still default color return 0; } 

任何人都可以解释为什么这个静态方法不会更新文本颜色? 这excat代码将工作,如果放在内联。

感谢您的时间。