我正在使用X11库启动我的第一个程序。首先,我只是尝试访问用户在xrdb中定义的配色方案中的颜色。例如,在我的~/.Xresources中,我有这样的东西:
*color8: #073642
*color0: #002b36我还验证了这些颜色在我运行xrdb -query时会显示出来。到目前为止,在我的C程序中,我有:
#include <X11/Xlib.h>
#include <X11/Xresource.h>
int main (int argc, char *argv[])
{
Display* display = XOpenDisplay (0);
XrmDatabase xrdb = XrmGetDatabase (display);
XrmValue v;
Colormap cmap = DefaultColormap (display, DefaultScreen (display));
XColor screenColor;
XColor exactColor;
if (! XAllocNamedColor (display, cmap "color0", &screenColor, &exactColor))
printf ("ERROR\n");
printf ("%u %u %u\n", screenColor.red, screenColor.green, screenColor.blue);
return 0;
}但是这个错误。那么我错过了什么呢?有没有更好的方法来做我想做的事情?谢谢!
发布于 2019-11-03 00:43:52
当您想要访问由xrdb加载的Xresource文件中设置的参数时,您需要
xrdb = XrmGetStringDatabase(XResourceManagerString(display));而不是XrmGetDatabase(...)。希望这(最近)解决了你的问题。
https://stackoverflow.com/questions/31445141
复制相似问题