+1  A: 

...and the answer, since I couldn't be bothered to make a login for any of those forums, but I already had an OpenID :-)

In my case (and likely all the ones I found), the problem was that I was missing an #include for the header file that contained the definition for the macro preceding the class name. The macro is most likely used as a build-configuration switched way to turn on __declspec(dllexport).

The way I discovered this was by going into the project properties, "C/C++" | Preprocessor and turning on "Generate Preprocessed File." When I looked at the preprocessed output, I discovered that the macro was included verbatim instead of being expanded.

Tim Keating
+10  A: 

You've almost certainly missed the header which defines AFX_BASE_APPLICATION_APP_CLASS. In that case, it would be passed through unaltered and VC++ would assume that CFileExtension was a function that returned class AFX_BASE_APPLICATION_APP_CLASS.

And, since it thinks it's a function, it also thinks it needs parentheses.

You just need to find where AFX_BASE_APPLICATION_APP_CLASS is defined and #include that file.

paxdiablo
+2  A: 

just define AFX_BASE_APPLICATION_APP_CLASS

bb
A: 

Tim is correct, I was just faced with this error and I had missed a preprocessor define that would have defined the macro preceding the class name. Once the macro is defined the error is resolved... To be frank, I was going to just up vote Tim's answer, but found out my Rep score was not high enough :-)

EB

echobravo