我尝试使用writeln()函数的转义序列,也尝试将它们与从std.c.stdlib模块导入的printf()函数一起使用,但只会打印出一个空行。
printf("\0x1B[5;32;40m Blink Text");
printf("\e[5;32;40m Blink Text\e[m");
writeln("\0x1b\x5b1;31;40m\tColor");
这些都没有用。
我已经尝试了我所能想到的一切,有什么办法吗?
搜索D网站的库参考并没有帮助我。
编辑:解决方案
好的,所以我尝试导入SetConsoleTextAttribute函数,就像Mars友好地建议的那样:
extern (Windows) bool SetConsoleTextAttribute(void*, ushort);
我还导入了另一个函数(这只是我的猜测,因为我之前没有Win编程经验)
extern (Windows) void* GetStdHandle(uint);
并简单调用这两个函数。
auto handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, FOREGROUND_BLUE);
writeln("In Color");
这个完美地起作用了,非常感谢你们的时间和帮助。