2
votes

I am using Visual Studio Ultimate 2012. I have a project that works when i use the default v110 platform toolset.

Now I would like to add the Point Cloud Library (PCL) to this project to further work on it. Unfortunately there are only binaries available for Visual Studio 2010. I first tried to compile the 2012 binaries myself but that turned out to be more trouble than its worth. So i changed my platform toolset to v100 in order to use the PCL prebuilt binaries.

However, when doing so, one of my includes (atlbase.h) is no longer recognized. I have tried to manually include this by adding the Include and Library Directories of ATL in the project properties. This generated a whole lot of new errors, originating from the atl header files, which seems odd. I have also tried changing the option "Use of ATL" to "Dynamic Link to ATL" and "Static Link to ATL" from the default "Not Using ATL" to no avail.

I'm working on a 64 bit Windows 7 Ultimate machine and want to compile in 32 bit.

Edit: Using Process Monitor I have found that Visual Studio is looking for the include file in C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h. This folder (..\atlmfc) does not exist. My VS2012 is installed at D:\School Programs\Visual Studio 2012

Is there a fix for this?

2
Do you have VS 2010 installed?Michael Burr
I have a version of VS 2010 Express installed yes.Laurens Vergote
2010 Express comes with build tools, but without ATL source code to include/reference.Roman R.
I'm not sure how well this works, but you might be able to get ATL working with VS 2010 Express using the WDK 7.1: microsoft.com/en-us/download/confirmation.aspx?id=11800Michael Burr
@RomanR.: I am aware of this, but I'm not using 2010 Express IDE to open or compile the project, I'm using 2012 Ultimate with 2010 platform toolset and 2012 Ultimate does come with ATL. I thought the lack of ATL in express wouldnt matter because i don't use it.Laurens Vergote

2 Answers

2
votes
  1. When you Switch to another different toolset this complete toolset must be available. This includes also the header files.
  2. It should be possible without great Trouble to convert this DLL into VS 2012. Or myabe you can include the complete source without using a separate DLL.
2
votes
  1. Download and install WDK 7.1 (microsoft.com/en-us/download/confirmation.aspx?id=11800)
  2. Create an environment variable which points to the installation directory, I called mine WINDDK
  3. Go to project Properties -> VC++ Directories
  4. Add $(WINDDK)\inc\atl71 to Include Directories
  5. Add $(WINDDK)\lib\ATL\i386 to Library Directories (this is for 32 bit)
  6. Go to project Properties -> Linker -> Input
  7. Add atl.lib to Additional Dependencies

These steps have solved my problem