コード例 #1
0
ファイル: checkdll.c プロジェクト: enukane/netbsd-src
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);
}
コード例 #2
0
ファイル: dll_hell.c プロジェクト: 183amir/workrave
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);
}
コード例 #3
0
ファイル: test.cpp プロジェクト: BackupTheBerlios/forg-svn
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();
}
コード例 #4
0
ファイル: dll_hell.c プロジェクト: 183amir/workrave
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);
  }
}