compiling c++ program calling x11 on windows -


i think have c++ program (i thought c#) written run on unix based system. includes x11 calls. there way me compile run on pc under windows xp? have installed mingw.

it 'patch' program written piece of hardware (a dreamcheeky usb chessboard) allow input scid chess database package (i've got installed in windows version development of unix /tcl/tk etc)

the program follows. person wrote may have time create windows version (or fear may not) desperate try work on windows laptop.

//compile g++ -o monitorcheeky monitorcheeky.c -l/usr/x11r6/lib -lx11  #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <x11/xlib.h> #include <x11/keysym.h> #include <string.h>  #define key_down true #define key_up false #define keycode_a 38 #define keycode_b 56 #define keycode_c 54 #define keycode_d 40 #define keycode_e 26 #define keycode_f 41 #define keycode_g 42 #define keycode_h 43 #define keycode_1 10 #define keycode_2 11 #define keycode_3 12 #define keycode_4 13 #define keycode_5 14 #define keycode_6 15 #define keycode_7 16 #define keycode_8 17 #define keycode_equals 21  #define keycode_q 24 #define keycode_r 27 #define keycode_b 56 #define keycode_n 57 #define keycode_rtn 36  display *dpy;   // function create keyboard event xkeyevent createkeyevent(display *display, window &win,                            window &winroot, bool press,                            int keycode, int modifiers) {    xkeyevent event;     event.display     = display;    event.window      = win;    event.root        = winroot;    event.subwindow   = none;    event.time        = currenttime;    event.x           = 1;    event.y           = 1;    event.x_root      = 1;    event.y_root      = 1;    event.same_screen = true;    event.keycode     = keycode;    event.state       = modifiers;     if(press)       event.type = keypress;    else       event.type = keyrelease;  return event; }  int sendkeypress(window winroot, char letter, int revert) {     window winfocus;     int keycode;      switch( letter )      {       case 'a':         keycode = keycode_a;     break;       case 'b':         keycode = keycode_b;     break;       case 'c':         keycode = keycode_c;     break;       case 'd':         keycode = keycode_d;     break;       case 'e':         keycode = keycode_e;     break;       case 'f':         keycode = keycode_f;     break;       case 'g':         keycode = keycode_g;     break;       case 'h':         keycode = keycode_h;     break;       case '1':         keycode = keycode_1;     break;       case '2':         keycode = keycode_2;     break;       case '3':         keycode = keycode_3;     break;       case '4':         keycode = keycode_4;     break;       case '5':         keycode = keycode_5;     break;       case '6':         keycode = keycode_6;     break;       case '7':         keycode = keycode_7;     break;       case '8':         keycode = keycode_8;     break;       default :     keycode = keycode_rtn;      }      xgetinputfocus(dpy, &winfocus, &revert);     // send fake key press event window.     xkeyevent event = createkeyevent(dpy, winfocus, winroot, key_down, keycode, 0);     xsendevent(event.display, event.window, true, keypressmask, (xevent *)&event);     // send fake key release event window.     event = createkeyevent(dpy, winfocus, winroot, key_up, keycode, 0);     xsendevent(event.display, event.window, true, keypressmask, (xevent *)&event);     xflush(dpy);     return 0; }  int main() {   int sockfd;   int len;   struct sockaddr_in address;   int result;   char input[5];     int revert;    /* init */   dpy = xopendisplay(null);   if (!dpy) return 1;   // root window current display.   window winroot = xdefaultrootwindow(dpy);    sockfd = socket(af_inet, sock_stream, 0);    address.sin_family = af_inet;   address.sin_addr.s_addr = inet_addr("127.0.0.1");   address.sin_port = htons(8796);   len = sizeof(address);    result = connect(sockfd, (struct sockaddr *)&address, len);    if (result == -1) {     perror("oops: client1");     return 1;   }   while (1) {     read(sockfd, input ,5);   //  printf("%s",input);   //  fflush(stdin);      sendkeypress(winroot, input[0], revert);     sendkeypress(winroot, input[1], revert);     sendkeypress(winroot, input[2], revert);     sendkeypress(winroot, input[3], revert);   }    /* cleanup */   xclosedisplay(dpy);   return 0; } 

thnx all

jerry jerry

mingw not able run if compiles.

you need cygwin x server run.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -