반응형
반응형
C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\AddIns 에 dll복사후
레지스트리 등록
VC6 실행 -> TOOL -> CUSTOMISZE -> add-ins and Macro Files -> 등록된 lineNumber 체크 후 재실행
-> 재 실행후 작은 박스 생기면 체크할 것



64비트는 아래꺼 등록

반응형
반응형

헤더파일 위쪽에 
// Visual C++ 4.0 -> 1000 
// Visual C++ 5.0 -> 1100 
// Visual C++ 6.0 -> 1200 
// Visual C++ 7.1(2003) -> 1310 
// Visual C++ 8.0(2005) -> 1400
// Visual C++ 9.0(2008) -> 1500
#if _MSC_VER > 1400
// 0x0600 -> Windows Vista
// 0x0502 -> Windows Server 2003
// 0x0501 -> Windows XP
// 0x0500 -> Windows 2000
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
#endif

쓰면 된다.


출처: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/using_the_windows_headers.asp

 

 MSDN Home >  MSDN Library >  Win32 and COM Development >  Development Guides >  Windows API

 
Platform SDK: Windows API

Using the Windows Headers

The header files for the Windows API enable you to create 32- and 64-bit applications. They include declarations for both Unicode and ANSI versions of the API. For more information, see Unicode in the Windows API. They use data types that allow you to build both 32- and 64-bit versions of your application from a single source code base. For more information, see Getting Ready for 64-bit Windows. Additional features include Header Annotations and STRICT Type Checking.

Microsoft Visual C++ includes copies of the Windows header files that were current at the time Visual C++ was released. Therefore, if you install updated header files from an SDK, you may end up with multiple versions of the Windows header files on your computer. If you do not ensure that you are using the latest version of the SDK header files, you will receive the following error code when compiling code that uses features that were introduced after Visual C++ was released: error C2065: undeclared identifier.

Conditional Declarations

Certain functions that depend on a particular version of Windows are declared using conditional code. This enables you to use the compiler to detect whether your application uses functions that are not supported on its target version(s) of Windows. To compile an application that uses these functions, you must define the appropriate macros. Otherwise, you will receive the C2065 error message.

The Windows header files use macros to indicate which versions of Windows support many programming elements. Therefore, you must define these macros to use new functionality introduced in each major operating system release. (Individual header files may use different macros; therefore, if compilation problems occur, check the header file that contains the definition for conditional definitions.) For more information, see Sdkddkver.h.

The following table describes the preferred macros in use by the Windows header files.

Minimum system required Macros to define
Windows Vista and Windows Server "Longhorn" NTDDI_VERSION >=NTDDI_LONGHORN
Windows Server 2003 SP1 NTDDI_VERSION >=NTDDI_WS03SP1
Windows Server 2003 NTDDI_VERSION >=NTDDI_WS03
Windows XP SP2 NTDDI_VERSION >=NTDDI_WINXPSP2
Windows XP SP1 NTDDI_VERSION >=NTDDI_WINXPSP1
Windows XP NTDDI_VERSION >=NTDDI_WINXP
Windows 2000 SP4 NTDDI_VERSION >=NTDDI_WIN2KSP4
Windows 2000 SP3 NTDDI_VERSION >=NTDDI_WIN2KSP3
Windows 2000 SP2 NTDDI_VERSION >=NTDDI_WIN2KSP2
Windows 2000 SP1 NTDDI_VERSION >=NTDDI_WIN2KSP1
Windows 2000 NTDDI_VERSION >=NTDDI_WIN2K

The following table describes the legacy macros in use by the Windows header files.

Minimum system required Macros to define
Windows Vista and Windows Server "Longhorn" _WIN32_WINNT>=0x0600

WINVER>=0x0600

Windows Server 2003 _WIN32_WINNT>=0x0502

WINVER>=0x0502

Windows XP _WIN32_WINNT>=0x0501

WINVER>=0x0501

Windows 2000 _WIN32_WINNT>=0x0500

WINVER>=0x0500

Windows NT 4.0 _WIN32_WINNT>=0x0400

WINVER>=0x0400

Windows Me _WIN32_WINDOWS=0x0500

WINVER>=0x0500

Windows 98 _WIN32_WINDOWS>=0x0410

WINVER>=0x0410

Windows 95 _WIN32_WINDOWS>=0x0400

WINVER>=0x0400

Internet Explorer 7.0 _WIN32_IE>=0x0700
Internet Explorer 6.0 SP2 _WIN32_IE>=0x0603
Internet Explorer 6.0 SP1 _WIN32_IE>=0x0601
Internet Explorer 6.0 _WIN32_IE>=0x0600
Internet Explorer 5.5 _WIN32_IE>=0x0550
Internet Explorer 5.01 _WIN32_IE>=0x0501
Internet Explorer 5.0, 5.0a, 5.0b _WIN32_IE>=0x0500
Internet Explorer 4.01 _WIN32_IE>=0x0401
Internet Explorer 4.0 _WIN32_IE>=0x0400
Internet Explorer 3.0, 3.01, 3.02 _WIN32_IE>=0x0300

Note that some features introduced in the latest version of Windows may be added to a service pack for a previous version of Windows. Therefore, to target a service pack, you may need to define _WIN32_WINNT with the value for the next major operating system release. For example, the GetDllDirectory function was introduced in Windows Server 2003 and is conditionally defined if _WIN32_WINNT is 0x0502 or greater. This function was also added to Windows XP SP1. Therefore, if you were to define _WIN32_WINNT 0x0501 to target Windows XP, you would miss features that are defined in Windows XP SP1.

You can define these symbols by using the #define statement in each source file, or by specifying the /D compiler option supported by Visual C++. To specify compiler options, go to the Projects menu and click Properties. Go to Configuration Properties, then C++, then Command Line. Enter the option under Additional Options.

Faster Builds with Smaller Header Files

You can reduce the size of the Windows header files by excluding some of the less common API declarations as follows:

  • Define WIN32_LEAN_AND_MEAN to exclude APIs such as Cryptography, DDE, RPC, Shell, and Windows Sockets.
  • Define one or more of the NOapi symbols to exclude the API. For example, NOCOMM excludes the serial communication API. For a list of support NOapi symbols, see Windows.h.

반응형

'Program > C++' 카테고리의 다른 글

Visual Studio 6 Line Number  (0) 2010.02.06
visual studio 2008에서 컴파일 및 빌드시 에러  (0) 2010.02.06
반응형
WINVER not defined. Defaulting to 0x0600 (Windows Vista)
매개 변수 2을(를) 'const char [21]'에서 'LPCTSTR'(으)로 변환할 수 없습니다.

등등의 에러가 나는 것의 해결법은

solution explorer 에서 해당 프로젝트를 우클릭한 후 properties 를 선택하면
뜨는 properties pages 에서

general > character set 에서 "Not set" 을 선택해서 다시 빌드해 보세요.

앞으로 프로그램 작성하실 때 유니코드 문제때문에

char -> TCHAR 로
문자열은 그냥 "Hello" 이렇게 하지 마시고 _T("Hello") 이렇게 하는 습관을 들이시면
좋습니다.

그러면 character set에 관계없이 빌드 잘 될것입니다.

물론 간단한 프로그램에서는 character set 을 "not set" 으로 하는 게 더 편리할
수도 있습니다.
반응형

'Program > C++' 카테고리의 다른 글

Visual Studio 6 Line Number  (0) 2010.02.06
WINVER not defined. Defaulting to 0x0600 (Windows Vista)  (0) 2010.02.06

+ Recent posts

반응형