//プロジェクト名encode001 C++ソースファイルencode001.cpp #define _CRT_RAND_S #include #include #include #include #include #include #pragma comment(lib, "SetupAPI.lib") #pragma comment(lib,"Winmm.lib") extern "C" { __declspec(dllexport) char * urlencode(char * string01,char * string02); __declspec(dllexport) char * urlencodeasc(char * string01,char * string02); __declspec(dllexport) char * urlencodeutf(char * string01,char * string02); __declspec(dllexport) char * urldecode(char * string01,char * string02); __declspec(dllexport) char * shift_to_utf(char * string01,char * string02); __declspec(dllexport) char * utf_to_shift(char * string01,char * string02); __declspec(dllexport) int lenutf(char * string01); __declspec(dllexport) char * substrutf(char * string01,unsigned int n01,unsigned int n02,char * string02); __declspec(dllexport) void dispshift(char * string01); __declspec(dllexport) void disputf(char * string01); __declspec(dllexport) void dbgviewshift(char * string01); __declspec(dllexport) void dbgviewutf(char * string01); __declspec(dllexport) int ffile01(char * string01,char * string02); __declspec(dllexport) int ren01(char * string01,char * string02); __declspec(dllexport) int copy01(char * string01,char * string02); __declspec(dllexport) int bomenc01(char * string01,char * string02); __declspec(dllexport) int bomdec01(char * string01,char * string02); __declspec(dllexport) int utfdbf01(char * string01,char * string02); __declspec(dllexport) int sjisdbf01(char * string01,char * string02); __declspec(dllexport) int playsnd01(char * string01); __declspec(dllexport) int usb01(char * string01); __declspec(dllexport) int setupdi01(char * string01); __declspec(dllexport) int run01(char * string01,int flag); __declspec(dllexport) int file01(char * string01,int time01); __declspec(dllexport) int sleep01(int time01); __declspec(dllexport) int remove01(char * string01); __declspec(dllexport) int rand01(int time01); int urlencode01(char *s,char *pd); int urlencodeasc01(char *s,char *pd); int urlencodeutf01(char *s,char *pd); int urldecode01(char *s); char * urlencode(char * string01,char * string02) { char * param1; int len,n,done; done = FALSE; len = strlen(string01); param1 = (char *)calloc(1,len*3 + 1); if (param1 == NULL) { strcpy_s(string02, len + 1, "calloc error"); return string02; } memset(param1,' ', len*3); if (param1 != NULL) { done = TRUE; } if (done) { len=strlen(string02); n=urlencode01(string01,param1); if (len + 1>=n) { memcpy(string02,param1,n); } else { * string02='\0'; } } else { * string02='\0'; } free(param1); return string02; } char * urlencodeasc(char * string01,char * string02) { char * param1; int len,n,done; done = FALSE; len = strlen(string01); param1 = (char *)calloc(1,len*3 + 1); if (param1 == NULL) { strcpy_s(string02, len + 1, "calloc error"); return string02; } memset(param1,' ', len*3); if (param1 != NULL) { done = TRUE; } if (done) { len=strlen(string02); n=urlencodeasc01(string01,param1); if (len + 1>=n) { memcpy(string02,param1,n); } else { * string02='\0'; } } else { * string02='\0'; } free(param1); return string02; } char * urlencodeutf(char * string01,char * string02) { char * param1; int len,n,done; done = FALSE; len = strlen(string01); param1 = (char *)calloc(1,len*3 + 1); if (param1 == NULL) { strcpy_s(string02, len + 1, "calloc error"); return string02; } memset(param1,' ', len*3); if (param1 != NULL) { done = TRUE; } if (done) { len=strlen(string02); n=urlencodeutf01(string01,param1); if (len + 1>=n) { memcpy(string02,param1,n); } else { * string02='\0'; } } else { * string02='\0'; } free(param1); return string02; } char * urldecode(char * string01,char * string02) { char * param1; int len,n,done; done = FALSE; len = strlen(string01); param1 = (char *)calloc(1,len + 1); if (param1 != NULL) { strcpy_s(param1, len + 1, string01); if(param1 != NULL) { done = TRUE; } } if (done) { len=strlen(string02); n=urldecode01(param1); if (len + 1>=n) { memcpy(string02,param1,n); } else { * string02='\0'; } } else { * string02='\0'; } free(param1); return string02; } char * shift_to_utf(char * string01,char * string02) { char* param1 = NULL; char* param2 = NULL; int len,n,done; done = FALSE; n = MultiByteToWideChar(CP_ACP, 0, string01, -1, NULL, 0 ); if(n != 0) { param1 = (char *)calloc(1,n*2); if (param1 != NULL) { n = MultiByteToWideChar(CP_ACP, 0, string01, -1, (LPWSTR)param1, n ); if(n != 0) { done = TRUE; } } } if (done) { done = FALSE; n = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)param1, -1, NULL, 0, NULL, NULL); if(n != 0) { param2 = (char *)calloc(1,n); if (param2 != NULL) { n = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)param1, -1, param2, n, NULL, NULL); if(n != 0) { done = TRUE; } } } } if (done) { len=strlen(string02); if (len + 1>=n) { memcpy(string02,param2,n); } else { * string02='\0'; } } else { * string02='\0'; } free(param1); free(param2); return string02; } char * utf_to_shift(char * string01,char * string02) { char* param1 = NULL; char* param2 = NULL; int len,n,done; done = FALSE; n = MultiByteToWideChar(CP_UTF8, 0, string01, -1, NULL, 0 ); if(n != 0) { param1 = (char *)calloc(1,n*2); if (param1 != NULL) { n = MultiByteToWideChar(CP_UTF8, 0, string01, -1, (LPWSTR)param1, n); if(n != 0) { done = TRUE; } } } if (done) { done = FALSE; n = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)param1, -1, NULL, 0, NULL, NULL); if(n != 0) { param2 = (char *)calloc(1,n); if (param2 != NULL) { n = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)param1, -1, param2, n, NULL, NULL); if(n != 0) { done = TRUE; } } } } if (done) { len=strlen(string02); if (len + 1>=n) { memcpy(string02,param2,n); } else { * string02='\0'; } } else { * string02='\0'; } free(param1); free(param2); return string02; } int lenutf(char * string01) { unsigned int n = 0; n = MultiByteToWideChar(CP_UTF8, 0, string01, -1, NULL, 0 ); return (n - 1); } int lenutfb(char * string01) { char * s = string01; int n = 0; while(*s) { if((unsigned char)*s<= 0x7F) { n++; s++; } else if(((unsigned char)*s>= 0xC2) && ((unsigned char)*s<=0xDF)) { n++; s += 2; } else if(((unsigned char)*s>= 0xE0) && ((unsigned char)*s<=0xEF)) { n++; s += 3; } else if(((unsigned char)*s>= 0xF0) && ((unsigned char)*s<=0xF4)) { n++; s += 4; } } return n; } char * substrutf(char * string01,unsigned int n01,unsigned int n02,char * string02) { unsigned int len,n; n = MultiByteToWideChar(CP_UTF8, 0, string01, -1, NULL, 0 ); len = strlen(string02); wchar_t * param1 = (wchar_t *)calloc(1,n*2); if (param1 == NULL) { strcpy_s(string02, len + 1, "calloc error"); return string02; } n = MultiByteToWideChar(CP_UTF8, 0, string01, -1, param1, n); if ((n01 < 1) || ((n02) < 1)) { * string02='\0'; free(param1); return string02; } if ((n01 + n02 -1) > (n-1)) { * string02='\0'; free(param1); return string02; } * (param1 + n01 + n02 -1) = L'\0'; n = WideCharToMultiByte(CP_UTF8, 0, param1 + n01 - 1, -1, NULL, 0, NULL, NULL); char * param2 = (char *)calloc(1,n); if (param2 == NULL) { strcpy_s(string02, len + 1, "calloc error"); return string02; } n = WideCharToMultiByte(CP_UTF8, 0, param1 + n01 - 1, -1, param2, n, NULL, NULL); if (len + 1>=n) { memcpy(string02,param2,n); } else { * string02='\0'; } free(param1); free(param2); return string02; } char * substrutfb(char * string01,unsigned int n01,unsigned int n02,char * string02) { unsigned int len01=strlen(string01); unsigned int len02=strlen(string02); if (len02>=len01) { memcpy(string02,string01,len01 + 1); } else { * string02='\0'; return string02; } char * s = string02; unsigned int n = 0; while(*s) { if((unsigned char)*s<= 0x7F) { n++; s++; } else if(((unsigned char)*s>= 0xC2) && ((unsigned char)*s<=0xDF)) { n++; s += 2; } else if(((unsigned char)*s>= 0xE0) && ((unsigned char)*s<=0xEF)) { n++; s += 3; } else if(((unsigned char)*s>= 0xF0) && ((unsigned char)*s<=0xF4)) { n++; s += 4; } } if ((n01+n02-1)>n) { * string02='\0'; return string02; } s = string02; n = 0; n01--; while( n < n01 && *s) { if((unsigned char)*s<= 0x7F) { n++; s++; } else if(((unsigned char)*s>= 0xC2) && ((unsigned char)*s<=0xDF)) { n++; s += 2; } else if(((unsigned char)*s>= 0xE0) && ((unsigned char)*s<=0xEF)) { n++; s += 3; } else if(((unsigned char)*s>= 0xF0) && ((unsigned char)*s<=0xF4)) { n++; s += 4; } } string02 = s; n = 0; while( n < n02 && *s) { if((unsigned char)*s<= 0x7F) { n++; s++; } else if(((unsigned char)*s>= 0xC2) && ((unsigned char)*s<=0xDF)) { n++; s += 2; } else if(((unsigned char)*s>= 0xE0) && ((unsigned char)*s<=0xEF)) { n++; s += 3; } else if(((unsigned char)*s>= 0xF0) && ((unsigned char)*s<=0xF4)) { n++; s += 4; } } *s = '\0'; return string02; } void dispshift(char * string01) { char* param1 = NULL; int n; n = MultiByteToWideChar(CP_ACP, 0, string01, -1, NULL, 0 ); if(n != 0) { param1 = (char *)calloc(1,n*2); if (param1 != NULL) { n = MultiByteToWideChar(CP_ACP, 0, string01, -1, (LPWSTR)param1, n); if(n != 0) { MessageBoxW(NULL, (LPCWSTR)param1, L"DispShift", MB_OK); } } } free(param1); return; } void disputf(char * string01) { char* param1 = NULL; unsigned int n; n = MultiByteToWideChar(CP_UTF8, 0, string01, -1, NULL, 0 ); if(n != 0) { param1 = (char *)calloc(1,n*2); if (param1 == NULL) { return; } if (param1 != NULL) { n = MultiByteToWideChar(CP_UTF8, 0, string01, -1, (LPWSTR)param1, n); if(n != 0) { MessageBoxW(NULL, (LPCWSTR)param1, L"DispUTF", MB_OK); } } } free(param1); return; } void dbgviewshift(char * string01) { unsigned int len = strlen(string01); char * param1 = (char *)calloc(1,len + 3); if (param1 == NULL) { return; } strcpy_s(param1, len+3, string01); strcat_s(param1, len+3, "\r\n"); OutputDebugStringA( param1); free(param1); return; } void dbgviewutf(char * string01) { unsigned int len = strlen(string01); char * param1 = (char *)calloc(1,len + 3); if (param1 == NULL) { return; } strcpy_s(param1, len+3, string01); strcat_s(param1, len+3, "\r\n"); char param20[] = ""; char* param2 = param20; unsigned int n; n = MultiByteToWideChar(CP_UTF8, 0, param1, -1, NULL, 0 ); if(n != 0) { param2 = (char *)calloc(1,n*2); if (param2 == NULL) { return; } n = MultiByteToWideChar(CP_UTF8, 0, param1, -1, (LPWSTR)param2, n); if(n != 0) { OutputDebugStringW((LPCWSTR)param2); } } free(param1); free(param2); return; } int urlencode01(char *s,char *pd) { unsigned int len; unsigned int n; n = 0; while(*s) { // if( (*s >= '0' && *s <= '9') // || (*s >= 'A' && *s <= 'Z') // || (*s >= 'a' && *s <= 'z') // || (*s == '-') // || (*s == '.') // || (*s == '_') ) // { // *pd++ = *s++; // n++; // } // else if( *s == ' ' ) // { // *pd++ = '+'; // n++; // s++; // } if( *s == '%' ) { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } else if((((unsigned char)*s>= 0x81) && ((unsigned char)*s<=0x9F)) || (((unsigned char)*s>=0xE0) && ((unsigned char)*s<=0xEF))) { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } else { *pd++ = *s++; n++; } } *pd++ = '\0'; n++; return n; } int urlencodeasc01(char *s,char *pd) { unsigned int len; unsigned int n; n = 0; while(*s) { if( (*s >= '0' && *s <= '9') || (*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z') // || (*s == '-') // || (*s == '.') // || (*s == '_') ) ) { *pd++ = *s++; n++; } // else if( *s == ' ' ) // { // *pd++ = '+'; // n++; // s++; // } if( *s == '%' ) { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } else if((((unsigned char)*s>= 0x81) && ((unsigned char)*s<=0x9F)) || (((unsigned char)*s>=0xE0) && ((unsigned char)*s<=0xEF))) { // len = strlen(pd); // sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); // pd += 3; // *pd = ' '; // n += 3; // s++; // len = strlen(pd); // sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); // pd += 3; // *pd = ' '; // n += 3; // s++; *pd++ = *s++; n++; *pd++ = *s++; n++; } else { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } // { // *pd++ = *s++; // n++; // } } *pd++ = '\0'; n++; return n; } int urlencodeutf01(char *s,char *pd) { unsigned int len; int n; n = 0; while(*s) { // if( (*s >= '0' && *s <= '9') // || (*s >= 'A' && *s <= 'Z') // || (*s >= 'a' && *s <= 'z') // || (*s == '-') // || (*s == '.') // || (*s == '_') ) // { // *pd++ = *s++; // n++; // } // else if( *s == ' ' ) // { // *pd++ = '+'; // n++; // s++; // } if( *s == '%' ) { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } else if(((unsigned char)*s>= 0xC2) && ((unsigned char)*s<=0xDF)) { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } else if(((unsigned char)*s>= 0xE0) && ((unsigned char)*s<=0xEF)) { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } else if(((unsigned char)*s>= 0xF0) && ((unsigned char)*s<=0xF4)) { len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; len = strlen(pd); sprintf_s(pd, len + 1, "%%%02X", (unsigned char)*s); pd += 3; *pd = ' '; n += 3; s++; } else { *pd++ = *s++; n++; } } *pd++ = '\0'; n++; return n; } int urldecode01(char *s) { char *pd; unsigned int ch, n; pd = s; n = 0; while(*s) { switch(*s) { // case '&': // *pd++ = '\0'; // n++; // s++; // break; // case '+': // *pd++ = ' '; // n++; // s++; // break; case '%': sscanf_s(s + 1, "%02x", &ch); *pd++ = (char)ch; n++; s += 3; break; default: *pd++ = *s++; n++; break; } } *pd++ = '\0'; n++; return n; } int ffile01(char * string01,char * string02) { FILE * fp01; WIN32_FIND_DATA FindFileData; HANDLE hFind; if(fopen_s(&fp01, string02, "wb")) { return(-1); } hFind = FindFirstFile( string01, &FindFileData); if (hFind != INVALID_HANDLE_VALUE) { fprintf(fp01, "%s\r\n", FindFileData.cFileName); while(FindNextFile(hFind, &FindFileData)) { fprintf(fp01, "%s\r\n", FindFileData.cFileName); } FindClose(hFind); } fclose(fp01); return(0); } int ren01(char * string01,char * string02) { return rename( string01, string02); } int copy01(char * string01,char * string02) { FILE * fp01; FILE * fp02; if(!strcmp( string01, string02)) return(-1); if(fopen_s(&fp01, string01, "rb")) return(-1); if(fopen_s(&fp02, string02, "wb")) { fclose(fp01); return(-1); } unsigned long read_size; unsigned char * buf = (unsigned char *)calloc(256 , sizeof(char)); if (buf == NULL) { return(-1); } while((read_size = fread(buf,1, 256, fp01)) > 0) { fwrite(buf, 1, read_size, fp02); } fclose(fp01); fclose(fp02); free(buf); return(0); } int bomenc01(char * string01,char * string02) { FILE * fp01; FILE * fp02; if(!strcmp( string01, string02)) return(-1); if(fopen_s(&fp01, string01, "rb")) return(-1); if(fopen_s(&fp02, string02, "wb")) { fclose(fp01); return(-1); } unsigned long read_size; unsigned char char01[]={0xEF,0xBB,0xBF}; unsigned char * buf = (unsigned char *)calloc(256 , sizeof(char)); if (buf == NULL) { return(-1); } if((read_size = fread(buf,1, 3, fp01)) >=3) { if (!((buf[0]==0xEF)&&(buf[1]==0xBB)&&(buf[2]==0xBF))) { fwrite(char01, 1, 3, fp02); } } else { fwrite(char01, 1, 3, fp02); } fwrite(buf, 1, read_size, fp02); while((read_size = fread(buf,1, 256, fp01)) > 0) { fwrite(buf, 1, read_size, fp02); } fclose(fp01); fclose(fp02); free(buf); return(0); } int bomdec01(char * string01,char * string02) { FILE * fp01; FILE * fp02; if(!strcmp( string01, string02)) return(-1); if(fopen_s(&fp01, string01, "rb")) return(-1); if(fopen_s(&fp02, string02, "wb")) { fclose(fp01); return(-1); } unsigned long read_size; unsigned char char01[]={0xEF,0xBB,0xBF}; unsigned char * buf = (unsigned char *)calloc(256 , sizeof(char)); if (buf == NULL) { return(-1); } if((read_size = fread(buf,1, 3, fp01)) >=3) { if (!((buf[0]==0xEF)&&(buf[1]==0xBB)&&(buf[2]==0xBF))) { fwrite(buf, 1, read_size, fp02); } } else { fwrite(buf, 1, read_size, fp02); } while((read_size = fread(buf,1, 256, fp01)) > 0) { fwrite(buf, 1, read_size, fp02); } fclose(fp01); fclose(fp02); free(buf); return(0); } int utfdbf01(char * string01,char * string02) { FILE * fp01; FILE * fp02; if(!strcmp( string01, string02)) return(-1); if(fopen_s(&fp01, string01, "rb")) return(-1); if(fopen_s(&fp02, string02, "wb")) { fclose(fp01); return(-1); } unsigned long read_size; unsigned char char01[]={0x01}; unsigned char * buf = (unsigned char *)calloc(256 , sizeof(char)); if (buf == NULL) { return(-1); } if((read_size = fread(buf,1, 1, fp01)) >=1) { fwrite(char01, 1, 1, fp02); } else { fclose(fp01); fclose(fp02); free(buf); return(-1); } while((read_size = fread(buf,1, 256, fp01)) > 0) { fwrite(buf, 1, read_size, fp02); } fclose(fp01); fclose(fp02); free(buf); return(0); } int sjisdbf01(char * string01,char * string02) { FILE * fp01; FILE * fp02; if(!strcmp( string01, string02)) return(-1); if(fopen_s(&fp01, string01, "rb")) return(-1); if(fopen_s(&fp02, string02, "wb")) { fclose(fp01); return(-1); } unsigned long read_size; unsigned char char01[]={0x03}; unsigned char * buf = (unsigned char *)calloc(256 , sizeof(char)); if (buf == NULL) { return(-1); } if((read_size = fread(buf,1, 1, fp01)) >=1) { fwrite(char01, 1, 1, fp02); } else { fclose(fp01); fclose(fp02); free(buf); return(-1); } while((read_size = fread(buf,1, 256, fp01)) > 0) { fwrite(buf, 1, read_size, fp02); } fclose(fp01); fclose(fp02); free(buf); return(0); } int playsnd01(char * string01) { if (PlaySound( string01,NULL,SND_FILENAME | SND_SYNC | SND_NODEFAULT)) return(0); else return(-1); } int usb01(char * string01) { int ret01 = 0; HDEVINFO hDevInfo; SP_DEVINFO_DATA DeviceInfoData; DWORD i; hDevInfo = SetupDiGetClassDevs(NULL, 0, 0, DIGCF_PRESENT | DIGCF_ALLCLASSES ); if (hDevInfo == INVALID_HANDLE_VALUE) return(-1); DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA); for (i=0; SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData); i++) { DWORD DataT; char * buffer = NULL; DWORD buffersize = 0; while (!SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC, &DataT, (PBYTE)buffer, buffersize, &buffersize)) { if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { if (buffer) LocalFree(buffer); buffer = (char *)LocalAlloc(LPTR,buffersize); } else { break; } } if (buffer) { if (!strcmp( buffer, string01)) ret01 = 1; LocalFree(buffer); } if (ret01 == 1) break; } if ( GetLastError()!=NO_ERROR && GetLastError()!=ERROR_NO_MORE_ITEMS ) return(-1); SetupDiDestroyDeviceInfoList(hDevInfo); return ret01; } int setupdi01(char * string01) { HDEVINFO hDevInfo; SP_DEVINFO_DATA DeviceInfoData; DWORD i; hDevInfo = SetupDiGetClassDevs( NULL, NULL, NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES); if (hDevInfo == INVALID_HANDLE_VALUE) return(-1); FILE * fp01; if(fopen_s(&fp01, string01, "wb")) { SetupDiDestroyDeviceInfoList(hDevInfo); return(-1); } DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA); for (i=0; SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData); i++) { DWORD DataT; char * buffer = NULL; DWORD buffersize = 0; while (!SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC, &DataT, (PBYTE)buffer, buffersize, &buffersize)) { if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { if (buffer) LocalFree(buffer); buffer = (char *)LocalAlloc(LPTR,buffersize * 2); } else { break; } } fprintf(fp01, "%s\r\n", buffer); if (buffer) LocalFree(buffer); } fclose(fp01); SetupDiDestroyDeviceInfoList(hDevInfo); if (GetLastError() == NO_ERROR || GetLastError() == ERROR_NO_MORE_ITEMS) return 0; else return(-1); } int run01(char * string01,int flag) { if (flag) return WinExec(string01,SW_SHOW); else return WinExec(string01,SW_HIDE); } int file01(char * string01,int time01) { FILE * fp01 = NULL; int c = 0; while (c < time01) { fopen_s(&fp01, string01, "r"); Sleep(100); if (fp01 != NULL) break; c++; } if (fp01 == NULL ) return -1; fclose(fp01); return 0; } int sleep01(int time01) { int c = 0; while (c < time01) { Sleep(100); c++; } return 0; } int remove01(char * string01) { return remove(string01); } int rand01(int mod01) { unsigned int number; rand_s(&number); return(number % mod01); // return(rand() % mod01); } }