static BOOL check_idn_processing(void) { int where = idnEncodeWhere(); BOOL here = FALSE; idnLogPrintf(idn_log_level_trace, "idnGetContext: Winsock%s, where=%d\n", winsock_info[winsock_idx].version, where); switch (winsock_idx) { case IDN_IDX_WS11: switch (where) { case IDN_ENCODE_ALWAYS: case IDN_ENCODE_ONLY11: return (TRUE); case IDN_ENCODE_CHECK: if (!check_dll(winsock_info[winsock_idx].name)) { return (TRUE); } break; } break; case IDN_IDX_WS20: switch (where) { case IDN_ENCODE_ALWAYS: case IDN_ENCODE_ONLY20: case IDN_ENCODE_CHECK: return (TRUE); break; } break; } return (FALSE); }
static void dll_hell_check_path (char* gtkpath) { HANDLE myHandle; WIN32_FIND_DATA fd; char* srchstr = (char*)malloc(strlen(gtkpath) + 8); sprintf(srchstr, "%s%s", gtkpath, "\\*.dll"); myHandle = FindFirstFile(srchstr, &fd ); if(myHandle != INVALID_HANDLE_VALUE) { check_dll(fd.cFileName, gtkpath); while(FindNextFile(myHandle, &fd)) { check_dll(fd.cFileName, gtkpath); } } free(srchstr); }
int _tmain(int argc, _TCHAR* argv[]) { check_dll( "dll2.dll" ); check_dll( "dll.dll" ); dll_object* a = new dll_object( "dbfs" ); a->hello(); dll_object* b; try { b = new dll_object( "dll3" ); } catch( int a ) { b = new dll_object( "dll2" ); } b->hello(); a->hello(); }
static void check_dll(char* dll, char* orig) { char tmp[MAX_PATH]; char *last; if (SearchPath(NULL, dll, NULL, MAX_PATH, tmp, &last)) { char* patha = (char*)malloc(strlen(orig) + strlen(dll) + 4); strcpy(patha, orig); strcat(patha, "\\"); strcat(patha, dll); /* Make sure that 2 paths are not the same */ if(strcasecmp(patha, tmp) != 0) { char *warning = (char*)malloc(strlen(msg1)+ strlen(msg2)+ strlen(msg3)+ strlen(msg4)+ strlen(tmp)+ (strlen(dll)*2)+4); sprintf(warning, "%s%s%s%s%s%s%s", msg1, dll, msg2, tmp, msg3, dll, msg4); if(MessageBox(NULL, warning, "Workrave Warning", MB_YESNO | MB_TOPMOST)==IDYES) { char *newname = (char*)malloc(strlen(tmp)+strlen(DLL_CONFLICT_EXTENSION)+1); /* Rename offending dll */ sprintf(newname, "%s%s", tmp, DLL_CONFLICT_EXTENSION); if(rename(tmp, newname) != 0) { MessageBox(NULL, "Error renaming file.", NULL, MB_OK | MB_TOPMOST); } else check_dll(dll, orig); free(newname); } free(warning); } free(patha); } }