У нас есть устаревшее приложение для Windows, которое проверяет, запущено ли оно в 32- или 64-битной системе. Очевидно, что нет доступной 64-битной версии, но сейчас мы сталкиваемся с ситуацией, когда мы ДОЛЖНЫ запускать ее на 64-битной рабочей станции Windows 7. Если не считать раскручивания 32-битной виртуальной машины для этой цели, есть ли у кого-нибудь предложения, которые могут обойти эту проблему?
3 ответа
Метод, который я использую, помечает желаемое приложение заголовками для 32-битных библиотек DLL, поэтому каждый раз, когда я выполняю его, приложение видит библиотеки 32-битного режима и загружает их в свое пространство памяти:
Загрузите Microsoft Windows SDK для Windows 7 и .NET Framework 4 ;
Установить его;
Загрузите утилиту Microsoft CorFlags с именем
CorFlags.exe
из папки Bin каталога программных файлов SDK;Отметьте ваше приложение, чтобы использовать 32-битные DLL, используя:
CorFlags /32BIT+ yourapplication.exe
При следующем запуске приложения Windows увидит новый заголовок и выполнит его как 32-разрядное приложение. Ваше приложение будет использовать 32-битные библиотеки DLL, предоставляемые Windows.
Visual FoxPro не может использовать 64-битные драйверы ODBC, даже если в противном случае приложение будет нормально работать в 64-битной системе.
Чтобы обойти эту проблему, откройте командную строку с повышенными правами и запустите C:\Windows\SysWow64\odbcad32.exe
чтобы настроить DSN.
(Бесстыдно сорвал отсюда.)
Я знаю, что вы сказали, что не хотите раскручивать виртуальную машину для этого, но XP Mode будет делать именно то, что вам нужно, и он может работать прозрачным образом, поэтому приложение не работает на виртуальной машине.
Установите XP Mode и посмотрите, подходит ли он вам.