Lucky hour! Grab a free trial license — offer ends in 00:59:58. Claim now
The analyzer has detected repeating sequences consisting of explicit type conversion operators. This code usually appears because of misprints and doesn't lead to errors. But it's reasonable to check those code fragments the analyzer generates the V608 warning for. Perhaps there is an error, or the code can be simplified at least.
Consider this sample:
m_hIcon = AfxGetApp()->LoadStandardIcon(
MAKEINTRESOURCE(IDI_ASTERISK));
The analyzer generates the warning for this code: V608 "Recurring sequence of explicit type casts: (LPSTR)(ULONG_PTR)(WORD) (LPSTR)(ULONG_PTR)(WORD)."
Let's find out where we get the two chains "(LPSTR)(ULONG_PTR)(WORD)" from.
The constant value IDI_ASTERISK is a macro of the following kind:
#define IDI_ASTERISK MAKEINTRESOURCE(32516)
It means that the above cited code is equivalent to the following code:
m_hIcon = AfxGetApp()->LoadStandardIcon(
MAKEINTRESOURCE(MAKEINTRESOURCE(32516)));
The MAKEINTRESOURCE macro is expanded into (LPSTR)((DWORD)((WORD)(i))). As a result, we get the following sequence:
m_hIcon = AfxGetApp()->LoadStandardIcon(
(LPSTR)((DWORD)((WORD)((LPSTR)((DWORD)((WORD)((32516))))))
);
This code will work correctly but it is surplus and can be rewritten without extra type conversions:
m_hIcon = AfxGetApp()->LoadStandardIcon(IDI_ASTERISK);
This diagnostic is classified as:
Was this page helpful?
Your message has been sent. We will email you at
If you do not see the email in your inbox, please check if it is filtered to one of the following folders: