The gdal/ogr tree holds source for a vector IO library inspired by OpenGIS Simple Features. In theory it is separate from GDAL, but currently they reside in the same source tree and are somewhat entangled. More information can be found at http://ogr.maptools.org. It is my plan to properly fold OGR into GDAL properly at some point in the future. Then GDAL will be a raster and vector library.
To some extent this is now covered by the GDAL Driver Implementation Tutorial.
The GDAL developers find it more convenient to build with makefiles and the Visual Studio NMAKE utility. Maintaining a parallel set of project files for GDAL is too much work, so there are no project files directly available from the maintainers. Occasionally other users do prepare such project files, and you may be able to get them by asking on the gdal-dev list. However, I would strongly suggest you just use the NMAKE based build system. With debugging enabled you can still debug into GDAL with Visual Studio.
Yes, you can. It's also possible to use GDAL libraries in applications developed using MS Visual C++ 2005 Express Edition.
Download and install Visual C++ 2005 Express Edition. Follow instructions presented on this website:
http://msdn.microsoft.com/vstudio/express/visualc/download/
Download and install Microsoft Platform SDK. Also, follow these instructions carefully without omitting any of steps presented there:
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
C:\Program Files\Microsoft Platform SDK\Include\atl C:\Program Files\Microsoft Platform SDK\Include\mfc
C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat
These variables should have following values assigned:
INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\Include; C:\Program Files\Microsoft Platform SDK\Include; C:\Program Files\Microsoft Platform SDK\Include\mfc; C:\Program Files\Microsoft Platform SDK\Include\atl;INCLUDE%
LIB=C:\Program Files\Microsoft Visual Studio 8\VC\Lib; C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib; C:\Program Files\Microsoft Platform SDK\lib;LIB%
NOTE: If you have edited system-wide INCLUDE and LIB variables, using System applet, every Console (cmd.exe) will have it properly set. But if you have edited them through vsvars32.bat script, you will need to run this script in the Console before every compilation.
Patch atlwin.h header
At line 1725 add int i; declaration, so it looks as follows:
--------------------------------------------------------------- BOOL SetChainEntry(DWORD dwChainID, CMessageMap* pObject, DWORD dwMsgMapID = 0) { int i; first search for an existing entry
for(i = 0; i < m_aChainEntry.GetSize(); i++) ---------------------------------------------------------------
Patch atlbase.h header
At line 287, comment AllocStdCallThunk and FreeStdCallThunk functions and add macros replacements:
--------------------------------------------------------------- /*************************************************** PVOID __stdcall __AllocStdCallThunk(VOID); VOID __stdcall __FreeStdCallThunk(PVOID);
define AllocStdCallThunk() __AllocStdCallThunk() define FreeStdCallThunk(p) __FreeStdCallThunk(p)
pragma comment(lib, "atlthunk.lib")