我已經完成了一個C程序,它將屏幕像素的RGB值(0-255)知道它的位置(x,y)。它適用於Linux,但是當我嘗試在Visual Studio(Windows)中編譯它時,由於庫X11/Xlib.h,X11/Xutil.h,unistd.h不存在而崩潰。用於Windows的函數庫「X11/Xlib.h」,「X11/Xutil.h」,「unistd.h」
這是代碼:
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
void getimage(XColor c, Display* d, int* rgb, int x, int y) {
XImage* image;
image = XGetImage(d, RootWindow(d, DefaultScreen(d)),
x, y, 1, 1, AllPlanes, XYPixmap);
c.pixel = XGetPixel(image, 0, 0);
XFree(image);
XQueryColor(d, DefaultColormap(d, DefaultScreen(d)), &c);
rgb[0] = c.red/256;
rgb[1] = c.green/256;
rgb[2] = c.blue/256;
}
int main() {
int rgb[3], x, y;
XColor c;
Display* d = XOpenDisplay((char*)NULL);
getimage(c, d, rgb, x, y);
}
我怎樣才能實現這個在Windows上運行?
這些是標題,而不是庫。頭文件是文本源文件,告訴編譯器有什麼可用的;除非你自己實現了庫,否則它們是無用的。這些特定的頭文件和庫很大程度上是針對類Unix系統的。 Windows上有Unix仿真層,比如Cygwin。或者,您可以編寫具有相同功能的代碼,使用Windows提供的標題和庫;結果將會非常不同。還有跨平臺的庫可以抽象出不同之處; wxWidgets就是一個例子。 –
這是編譯器錯誤,不是崩潰。 – IInspectable
如果您的編譯器**因丟失頭文件而崩潰**,您應該在調試器中運行它並提交包含所有詳細信息的錯誤報告。 – Olaf