2010-11-10 3 views
0

У нас мало проектов, которые компилируют мой make-файл. Эти файлы отлично работают в Windows 32 и Visual Studio 2005. Для переноса Windows 64 мы используем Visual Studio 2008. В make-файле мы определили/d "_WIN64" для установки 64-битных включений и других вещей. В одном файле мы включаем заголовок windows.h. Но в качестве объявления предварительного процессора WIN32. Поэтому после этого мы получаем ошибку для ODBC. Я испытал это следующим образом Во-первых:Проблема с переносом Windows 64 бит

#ifdef WIN32 
in sds; 
#endif 
include windows.h> 

Здесь мы не получаем ошибку для в и ИКБ.

Второе:

include windows.h> 

#ifdef WIN32 
in sds; 
#endif 

Здесь мы получаем ошибку для в и ИКБ. Что показывает, что windows.h объявляет WIN32. Эрро мы получаем для функции SQLBindCol следующим образом:

ошибка C2664: 'SQLBindCol': не может преобразовать параметр 6 из 'SQLINTEGER *' до 1> Типы 'SQLLEN * указал не связаны; для преобразования требуется reinterpret_cast, литье в стиле C или литье в стиле функции

Любая идея избавиться от него?

запись Makefile как:

CPP_PROJ=/nologo /MT /W3 /GR /EHsc /O2 /I "..\..\include" /I"$(VC_ROOT)\include" /I"$(WINSDKDIR)" /D "_WIN64" /D "NDEBUG" /D_CRT_SECURE_NO_WARNINGS /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 

ответ

1

#define Win32 (ы) должен существовать , а как Win64 одного (ов) при компиляции кода x64.

Подумайте о Win64 как о расширении Win32 в этом контексте.

Смежные вопросы