Проверьте флаги компоновщика. Вся конфигурация проекта для 64-битных сборок отличается от конфигурации 32-битных сборок. Поэтому проверьте настройки вашего проекта и убедитесь, что они оба ссылаются на одни и те же библиотеки.
Также убедитесь, что компилятор и компоновщик были вызваны правильно, либо проверяя панели командной строки в настройках проекта, либо просматривая журнал сборки.
Я только что попытался создать 64-битную сборку этого кода в Visual Studio 2010, и он работал нормально:
#include <Windows.h>
int CALLBACK WinMain(
__in HINSTANCE hInstance,
__in HINSTANCE hPrevInstance,
__in LPSTR lpCmdLine,
__in int nCmdShow
) {
FILETIME ct;
FILETIME et;
FILETIME kt;
FILETIME ut;
GetProcessTimes(NULL, &ct, &et, &kt, &ut);
SYSTEMTIME st;
FileTimeToSystemTime(&ut, &st);
}
Я просто создал новый проект Win32, добавил 64-битную платформу и скомпилировал. Я не изменил никаких настроек проекта.