我正在使用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;
}
但是这个错误。那我想念什么呢?有没有更好的方法来做我想做的事情?谢谢!
[当您要访问在xrdb
加载的Xresource文件中设置的参数时,需要
xrdb = XrmGetStringDatabase(XResourceManagerString(display));
而不是XrmGetDatabase(...)
。希望能够(稍后)解决您的问题。