View Full Version : Compiler Fehler

March 25, 2004, 15:38:35
I tested to compile the IC C++ samples (SimpleProperty, DemoApp) with C++ 6.0. Unfortunately there were in several samples compiler errors - I can not find out the reason:

c:\...141\classlib\include\membuffer.h(133) : error C2143: Syntaxfehler : Fehlendes ',' vor '&'
c:\...141\classlib\include\membuffer.h(133) : error C2059: Syntaxfehler : '&'
c:\...141\classlib\include\membuffer.h(135) : error C2143: Syntaxfehler : Fehlendes ';' vor '&'
c:\...141\classlib\include\membuffer.h(135) : error C2501: 'getSampleDesc' : Fehlende Speicherklasse oder Typbezeichner
c:\...141\classlib\include\grabberlistener.h(47) : error C2143: Syntaxfehler : Fehlendes ',' vor '&'
c:\...141\classlib\include\grabberlistener.h(47) : error C2059: Syntaxfehler : '&'
Fehler beim Ausführen von cl.exe.


c:\programme\dxsdk\include\strmif.h(1022) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'HSEMAPHORE'
c:\programme\dxsdk\include\strmif.h(1022) : fatal error C1004: Unerwartetes Dateiende gefunden

Can anybody help to solve the problem. I used the DirectX 9.0 SDK - could this be the reason?

Best Regards!

Stefan Geissler
March 26, 2004, 07:13:39

The DX9 SDK is not the problem. Please make sure, that the include directory sequence starts with your DX SDK directory.

If you have intalled the DirectX SDK (version 8.1 or higher), you should open your Visual Studio 6.
Click the "Tools" and there the "Options" menu. In the now opened dialog click the "Directories"
tab. You can see the include directories. Move the include directory of your DirectX to the top of
the list. You should do the same with the lib files (see right combo box).

Then perform a complete rebuild of your project.

August 20, 2004, 16:11:00
I got the HSEMAPHORE failure too. In my case the solution was to move the include directories and lib directories of DirectX to the bottom of the list!

I am using VS6 SP6 with DirectX 9 SDK (Summer Update)


February 14, 2005, 20:22:56
I have the same error regarding the strmif.h file (error c2146: syntax error:missing ';' before identifier 'HSEMAPHORE'). I tried both first and last location in the options/directories/include files tab. The first location gives me the least number of errors (3, all related to this first compile error). The library options have been set to the same priority as the include files, i.e. first in the paths list.

What did I forget? By the way all the demo utilities compile with the same error. So it must be some basic setting error. I even re-installed the DX9.0c SDK, to no avail. I am using VC6 SP6.



Stefan Geissler
February 15, 2005, 12:32:02

after you have installed the DirectX SDK again, did you rebuild your project completely?

February 15, 2005, 13:28:37
Yes, I did rebuild from scratch, even removing the files from the debug directory. The DX9 version is the December 2004 build.

Still no go.

Stefan Geissler
February 15, 2005, 13:55:44
All other settings are correct too, like debug multithreaded, use MFC in a shared library etc?

February 15, 2005, 14:05:15
Yes, I am now currently downloading the summer 2004 edition of the SDK. I may try to install it after I remove the December edition and give it another go.

The First Step program demo fails to compile with the exact same error.


Stefan Geissler
February 15, 2005, 14:12:57
Sorry, but i have no more idea. It must be something with your Visual Studio installation.

Stefan Geissler
February 15, 2005, 15:05:38
Just an addition: Make sure, that the DirectShow libraries and includes are on top level of the includes list.

February 24, 2005, 21:32:05
Try to install the last Platform SDK.

June 23, 2005, 13:44:26
My SDK version is dxsdk_feb2005_extras+dxsdk_feb2005. This version only provides .net version of baseclasses project. I rebuild this project in .net and got strmbasd.lib and STRMBASE.lib .

When I used VC+SP6 with DirectX 9 SDK (feb2005), I met the same problem. But in .net, I did not meet this problem. Maybe the problem is strmbasd.lib and STRMBASE.lib bulit in .net can not be used in VS...

So Try to do it in VC++ .net

Stefan Geissler
June 23, 2005, 13:47:07
You do not need STRMBASE.lib and strmbasd.lib are not to be needed in your application, if you do not use the MEDIASUBTYPE things.