You didn't properly define or use a symbol that you appear to be using as a function.
Possible causes are:
- problems with the correct definition and use of function pointers (see the link in solution 1)
- failure to include the appropriate header for the function definition, if there is also a local symbol by the same name
There is also a slim chance that an unlucky #define-macro messes with your code, but the symbols in your code are looking fairly safe...
My guess is that instead of putting the declaration of the function ValidateBaseMaterial into a header file and include that, you copied it into your cpp file and accidenttaly ommitted the brackets like this:
int ValidateBaseMaterial;
if (!ValidateBaseMaterial())
^ error 2064!
Another possibility is that you defined the function like that right in your header file.