Changeset 273 in pacpusframework for trunk/src/RoadTime
- Timestamp:
- Mar 13, 2014, 10:41:47 AM (12 years ago)
- File:
-
- 1 edited
-
trunk/src/RoadTime/src/road_time.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/RoadTime/src/road_time.c
r89 r273 27 27 DWORD ul_reason_for_call, 28 28 LPVOID lpReserved 29 )29 ) 30 30 { 31 HANDLE hMapObject = NULL; // handle to file mapping31 HANDLE hMapObject = NULL; // handle to file mapping 32 32 BOOL fInit, fIgnore; 33 struct Initialisation_Time First_Launcher;34 struct timeb timeptr;35 LARGE_INTEGER tmp;33 struct Initialisation_Time First_Launcher; 34 struct timeb timeptr; 35 LARGE_INTEGER tmp; 36 36 37 37 switch (ul_reason_for_call) 38 {39 case DLL_THREAD_ATTACH:40 break;41 case DLL_PROCESS_ATTACH:42 // Create a named file mapping object.38 { 39 case DLL_THREAD_ATTACH: 40 break; 41 case DLL_PROCESS_ATTACH: 42 // Create a named file mapping object. 43 43 hMapObject = CreateFileMapping( 44 44 INVALID_HANDLE_VALUE, // use paging file … … 68 68 // Initialize memory if this is the first process. 69 69 if (fInit) 70 {71 memset(lpvMem, '\0', SHMEMSIZE);72 73 ftime(&timeptr );74 First_Launcher.Real_Time=(road_time_t) timeptr.time * 1000000 +(road_time_t) timeptr.millitm * 1000;75 if (!QueryPerformanceFrequency(&tmp))76 {77 MessageBox(NULL,"No Multimedia Counter Available","DLL Message",MB_OK);78 First_Launcher.Multimedia_Counter_Frequency=(unsigned __int64) 0;79 First_Launcher.Multimedia_Counter=(unsigned __int64)0;80 First_Launcher.delta_t=First_Launcher.Real_Time;81 SetSharedMem(&First_Launcher);82 return FALSE;83 } 84 First_Launcher.Multimedia_Counter_Frequency=(unsigned __int64) tmp.QuadPart;85 if (!QueryPerformanceCounter(&tmp))86 { 87 MessageBox(NULL,"Couldn't Get the value of Multimedia Counter","DLL Message",MB_OK);88 First_Launcher.Multimedia_Counter_Frequency=(unsigned __int64) 0;89 First_Launcher.Multimedia_Counter=(unsigned __int64)0;90 First_Launcher.delta_t=First_Launcher.Real_Time;91 SetSharedMem(&First_Launcher);92 return FALSE;93 }94 First_Launcher.Multimedia_Counter=(unsigned __int64)tmp.QuadPart;95 First_Launcher.delta_t=First_Launcher.Real_Time-(road_time_t) (First_Launcher.Multimedia_Counter*1000000/First_Launcher.Multimedia_Counter_Frequency);96 //MessageBox(NULL,"You called Road_Time_2.DLL","DLL Message",MB_OK);97 SetSharedMem(&First_Launcher);70 { 71 memset(lpvMem, '\0', SHMEMSIZE); 72 73 ftime(&timeptr ); 74 First_Launcher.Real_Time=(road_time_t) timeptr.time * 1000000 +(road_time_t) timeptr.millitm * 1000; 75 if (!QueryPerformanceFrequency(&tmp)) 76 { 77 MessageBox(NULL,"No Multimedia Counter Available","DLL Message",MB_OK); 78 First_Launcher.Multimedia_Counter_Frequency=(unsigned __int64) 0; 79 First_Launcher.Multimedia_Counter=(unsigned __int64)0; 80 First_Launcher.delta_t=First_Launcher.Real_Time; 81 SetSharedMem(&First_Launcher); 82 return FALSE; 83 } 84 First_Launcher.Multimedia_Counter_Frequency=(unsigned __int64) tmp.QuadPart; 85 if (!QueryPerformanceCounter(&tmp)) 86 { 87 MessageBox(NULL,"Couldn't Get the value of Multimedia Counter","DLL Message",MB_OK); 88 First_Launcher.Multimedia_Counter_Frequency=(unsigned __int64) 0; 89 First_Launcher.Multimedia_Counter=(unsigned __int64)0; 90 First_Launcher.delta_t=First_Launcher.Real_Time; 91 SetSharedMem(&First_Launcher); 92 return FALSE; 93 } 94 First_Launcher.Multimedia_Counter=(unsigned __int64)tmp.QuadPart; 95 First_Launcher.delta_t=First_Launcher.Real_Time-(road_time_t) (First_Launcher.Multimedia_Counter*1000000/First_Launcher.Multimedia_Counter_Frequency); 96 //MessageBox(NULL,"You called Road_Time_2.DLL","DLL Message",MB_OK); 97 SetSharedMem(&First_Launcher); 98 98 99 99 100 }101 break;102 case DLL_THREAD_DETACH:103 break;104 case DLL_PROCESS_DETACH:105 // Unmap shared memory from the process's address space.106 // In the case of the last process, Windwos automatically clean up the memory.100 } 101 break; 102 case DLL_THREAD_DETACH: 103 break; 104 case DLL_PROCESS_DETACH: 105 // Unmap shared memory from the process's address space. 106 // In the case of the last process, Windwos automatically clean up the memory. 107 107 fIgnore = UnmapViewOfFile(lpvMem); 108 108 // Close the process's handle to the file-mapping object. 109 109 fIgnore = CloseHandle(hMapObject); 110 break;110 break; 111 111 } 112 112 return TRUE; … … 132 132 road_time_t ROAD_TIME_API road_time2(void) 133 133 { 134 struct Initialisation_Time First_Launcher;135 road_time_t reply;136 LARGE_INTEGER tmp;137 struct timeb timeptr;138 139 GetSharedMem(&First_Launcher);134 struct Initialisation_Time First_Launcher; 135 road_time_t reply; 136 LARGE_INTEGER tmp; 137 struct timeb timeptr; 138 139 GetSharedMem(&First_Launcher); 140 140 141 if (!QueryPerformanceCounter(&tmp))142 { 143 MessageBox(NULL,"Couldn't Get the value of Multimedia Counter","DLL Message",MB_OK);144 ftime(&timeptr );145 reply=(road_time_t) timeptr.time * 1000000 +(road_time_t) timeptr.millitm * 1000;146 }147 148 else149 { 150 reply=(road_time_t) First_Launcher.Real_Time + (road_time_t) (((unsigned __int64) tmp.QuadPart - First_Launcher.Multimedia_Counter) * 1000000/First_Launcher.Multimedia_Counter_Frequency);151 }152 return(reply);141 if (!QueryPerformanceCounter(&tmp)) 142 { 143 MessageBox(NULL,"Couldn't Get the value of Multimedia Counter","DLL Message",MB_OK); 144 ftime(&timeptr ); 145 reply=(road_time_t) timeptr.time * 1000000 +(road_time_t) timeptr.millitm * 1000; 146 } 147 148 else 149 { 150 reply=(road_time_t) First_Launcher.Real_Time + (road_time_t) (((unsigned __int64) tmp.QuadPart - First_Launcher.Multimedia_Counter) * 1000000/First_Launcher.Multimedia_Counter_Frequency); 151 } 152 return(reply); 153 153 154 154 } … … 157 157 road_time_t ROAD_TIME_API road_time(void) 158 158 { 159 struct Initialisation_Time First_Launcher;160 road_time_t reply;161 LARGE_INTEGER tmp;162 struct timeb timeptr;163 164 GetSharedMem(&First_Launcher);165 166 if (!QueryPerformanceCounter(&tmp))167 { 168 MessageBox(NULL,"Couldn't Get the value of Multimedia Counter","DLL Message",MB_OK);169 ftime(&timeptr );170 reply=(road_time_t) timeptr.time * 1000000 +(road_time_t) timeptr.millitm * 1000;171 }172 173 else174 { 175 reply=First_Launcher.delta_t+(road_time_t) ((tmp.QuadPart*1000000)/First_Launcher.Multimedia_Counter_Frequency);176 177 }178 return(reply);159 struct Initialisation_Time First_Launcher; 160 road_time_t reply; 161 LARGE_INTEGER tmp; 162 struct timeb timeptr; 163 164 GetSharedMem(&First_Launcher); 165 166 if (!QueryPerformanceCounter(&tmp)) 167 { 168 MessageBox(NULL,"Couldn't Get the value of Multimedia Counter","DLL Message",MB_OK); 169 ftime(&timeptr ); 170 reply=(road_time_t) timeptr.time * 1000000 +(road_time_t) timeptr.millitm * 1000; 171 } 172 173 else 174 { 175 reply=First_Launcher.delta_t+(road_time_t) ((tmp.QuadPart*1000000)/First_Launcher.Multimedia_Counter_Frequency); 176 177 } 178 return(reply); 179 179 180 180 } … … 183 183 struct Initialisation_Time ROAD_TIME_API road_time_init(void) 184 184 { 185 struct Initialisation_Time First_Launcher;186 187 GetSharedMem(&First_Launcher);188 return(First_Launcher);185 struct Initialisation_Time First_Launcher; 186 187 GetSharedMem(&First_Launcher); 188 return(First_Launcher); 189 189 190 190 }
Note:
See TracChangeset
for help on using the changeset viewer.
