Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
#include <atlbase.h>
//You may derive a class from CComModule and use it if you want to override something,
//but do not change the name of _Module
extern CComModule _Module;
#include <atlcom.h>
#include <sapi.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
cout << "Hello" << endl;
ISpVoice * pVoice = NULL;
if (FAILED(::CoInitialize(NULL)))
return FALSE;
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
if( SUCCEEDED( hr ) )
cout << "Succeeded" << endl;
hr = pVoice->Speak(L"Hello world", 0, NULL);
pVoice->Release();
pVoice = NULL;
cout << "Not succeeded" << endl;
::CoUninitialize();
return TRUE;
I am using QT. When I run this code, I get the error
Cannot open include file: 'atlbase.h': No such file or directory
I noticed that I do not have the files
atlbase.h
or
atlcom.h
in my machine. However, this code runs without error in my laptop, and I got those 2 files there.
I am thinking about getting a copy of those 2 files into my desktop computer and will it work? If yes, to which folder do I have to copy them? I am new to Windows programming, QT and speech.
–
For me these files are located here:
VS2010 - C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h
VS2008 - C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlbase.h
Please note ATL is part of Microsoft Visual Studio (but not the Express Edition).
If you need get ATL for Express please take a look at this topic How to add WTL and ATL to visual studio c++ express 2008
I don't think copying atlbase.h
and atlcom.h
will help you.
You might try to get all atl*.h files and install required Microsoft Visual C++ Redistributable package.
–
–
–
–
Having the headers is certainly a step in the right direction, but you will also need the libraries in order to compile (unless everything is implemented in headers). You can place the headers where you like, just make sure the linker finds them (either in the default location* or by including the path as a flag).
*I don't know the default location for Windows.
I installed VS 2015 Express which said it was VS 2017 Community when it ran and was having this altbase.h problem with very simple c++ programs. You can fixate on getting the exact include files or you can take a step back to solve this problem. Microsoft is a big, thorough company, when they give you the c++ compiler they give you the libraries you need. When I fixed this problem I
started Visual Studio as administrator.
Created a Win32 c++ Console app
Did NOT check "Empty Project" on c++ project create wizard.
Did NOT check the Common Header Files for ATL and MFC.
Then when I added my code the generated stdafx.h default included header did not cause this altbase.h problem like it was doing before. I was able to add other includes and did a "using namespace std;" and I was able to do cout and cin's. My base operating system was Windows 7 Home Premium. Obviously when you installed VS 2015/2017 Express you had to select the c++ check box for the install.