Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to deal with BK4504 warning

With warning level 4 set in my C++ project I'm seeing the following:

Warning 1 warning BK4504: file contains too many references; ignoring further references from this source c:\program files (x86)\windows kits\8.1\include\um\mshtml.h 37492

mshtml.h is listed in the External Dependencies folder of my project and, as far as I can tell, appears to be a Microsoft-supplied header as part of the Windows 8.1 SDK.

I'm a novice programmer and my research of this reveals it to be a problem with mshtml.h exceeding the symbol reference limit of 64,000, at which point BCSMAKE throws up its hands generates this message.

Is it safe to simply ignore this warning? I'm aware it's possible to disable specific warnings using #pragma directives but where do I place this directive? I've tried #pragma warning(disable: 4504) in several places in my source files but the warning persists.

The only way to reliably disable this message appears to be to turn off Enable Browse Information in project settings but my feeling is I shouldn't have to be doing that.

like image 693
Darren Evans Avatar asked Aug 31 '14 13:08

Darren Evans


1 Answers

My "solution" was to turn off the BSC generation for afxhtml.h (which includes mshtml.h) like this:

#pragma component(browser, off, references)
#include <afxhtml.h>
#pragma component(browser, on, references)

You can read more about this #pragma here: MSDN: component

like image 95
Mark Avatar answered Oct 06 '22 11:10

Mark