It is often seen in the technical forum to see a post similar to this: "What is SDK?", "Please tell the SDK?" ......
In fact, it is very simple, SDK is the abbreviation of Software Development Kit, meaning in Chinese is "Software Development Toolkit". This is a quite a wide range of coverage, which can be said: assisted the relevant documentation, examples, and tools for the development of a certain type of software, can be called "SDK". Specifically to our series of tutorials, we only discuss a subset of generalized SDKs - that is, the SDK used by the application under the development of the Windows platform.
Oh, in fact, it just said a SDK probably concept, understand what is SDK is really so easy? I am afraid it is not so simple! To explain what is SDK, we have to introduce an API, dynamic link library, import library, and so on. ^ _ ^, Don't be afraid, it is a few new nouns, I also experienced the new knowledge of the new name, new concept and new terms when I got university.
First, "API" is "API", that is, Application Programming Interface, is actually a call interface for the operating system to the application. The application enables the operating system to perform the application command (action) by calling the API of the operating system. In fact, there is an API concept as early as the DOS era, but the API at that time is provided in the form of interrupt calls (INT 21H), and the application running directly or indirectly through interrupt calls in DOS. For example, the version of the DOS operating system can be obtained after the AH is set to 30 hours. In Windows, the system API is provided in a function called. It is also the version number of the operating system. What you have to do in Windows is to call the getversionEx () function. It can be said that the DOS API is "Thinking In assembly language", and the Windows API is "Thinking In High Language". The DOS API is part of the system program, and they are loaded with the system and can find their portals through the interrupt vector table, then Windows API? To illustrate the problem, you have to introduce us to introduce this concept - DLL.
DLL (another abbreviation, I feel very much in this industry), that is, Dynamic Link Library (Dynamic Link Library). We often see some files in .dll format, these files are dynamic link library files, actually a executable file format. Unlike .exe files, .dll files cannot be executed directly, they usually be loaded by .exe, contain some resources and executable code. In fact, Windows's three modules are provided in the form of DLL (kernel32.dll, user32.dll, gdi32.dll), with an execution code of the API function. In order to use the API function in the DLL, we must have the declaration of the API function (.h) and its import library (.lib), the prototype statement of the function is not difficult to understand, then what is the import library? We temporarily understand this: The import library is used in order to find the entry point of the API in the DLL.
So, in order to use the API function, we have to have the .h and .lib files corresponding to the API, while SDK is providing a "kit" for the related files, examples, and tools required to develop Windows applications. So far, we really explain the meaning of the SDK. Since the SDK contains the required information using the API, people often use the API to write only the development of Windows applications called "SDK Programming". API and SDK are what is necessary for developing Windows applications, so other programming frameworks and libraries are built on them, such as VCL and MFC, although they have a higher abstraction than "SDK programming". But this does not prevent them directly to call the API function at any time when needed.