Pour obtenir une clé
d'essai remplissez le formulaire ci-dessous
Demandez des tariffs
Nouvelle licence
Renouvellement de licence
--Sélectionnez la devise--
* En cliquant sur ce bouton, vous acceptez notre politique de confidentialité

Free PVS-Studio license for Microsoft MVP specialists
To get the licence for your open-source project, please fill out this form
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

I am interested to try it on the platforms:
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

Votre message a été envoyé.

Nous vous répondrons à

Si vous n'avez toujours pas reçu de réponse, vérifiez votre dossier
Spam/Junk et cliquez sur le bouton "Not Spam".
De cette façon, vous ne manquerez la réponse de notre équipe.

Obsolete descriptions of functions in M…

Obsolete descriptions of functions in MSDN taking no account of 64 bits

05 Avr 2013

MSDN is a large knowledge base, so maintaining and keeping it up-to-date is an extremely difficult and perhaps almost impossible task. In forums, there are many questions asked by programmers who are involved into 64-bit software development and who are embarrassed by descriptions of some functions in MSDN.

For example, take the discussion "MSDN 64-bit issue". Figure 1 is a screenshot showing the description of the function CListCtrl::SetItemData in the on-line version of MSDN. Although this post is being written in 2010, the function description is still incorrect. And it is most likely that many other MSDN materials are still obsolete from the viewpoint of 64 bits.


Figure 1 - Description of the function CListCtrl::SetItemData in MSDN Library Online

Only the argument was changed in the description of the function CListCtrl::SetItemData. The type of the parameter dwDara was changed from DWORD to DWORD_PTR. It is the same with the description of the function GetItemData. Perhaps this modification was made in some automated mode relying on the new header files. But the descriptions of the functions themselves remain obsolete and mention the "32-bit value".

Here is a question. Maybe the function prototype has been changed but the function still saves data in the 32-bit mode? We may answer "no" relying on the following reasons:

1) Logical reason. You often need to associate rather many data with a list item. In this case the data are untied into a structure and the pointer assigned to it is saved into the function SetItemData. Win64 API developers could not have deprived programmers of this capability, so the function must be able to store 64-bit pointers.

2) Practical experiment:

list.SetItemData(0, 0x1111111122222222ui64);
DWORD_PTR value = list.GetItemData(0);
if (value == 0x1111111122222222ui64)

Successful launch of this code in a 64-bit application confirms that SetItemData can store 64-bit values.

Conclusion. Descriptions of SetItemData, GetItemData and some other functions in MSDN Library are obsolete. MSDN materials are regularly updated and perhaps the error we have described here is corrected by now. But if you have encountered such a case, try experiment to check the properties of the function you are dealing with.

Popular related articles
macOS 10.15 no longer supports 32-bit apps. What can you do?

Date: 15 Oct 2019

Author: Sergey Khrenov

On October 7, 2019, Apple released a new version of its Mac operating system, macOS Catalina. Version 10.15 contains many changes and improvements. One of the significant is the complete phasing out …
If the coding bug is banal, it doesn't mean it's not crucial

Date: 19 Avr 2017

Author: Andrey Karpov

Spreading the word about PVS-Studio static analyzer, we usually write articles for programmers. However, some things are seen by programmers quite one-sided. That is why there are project managers wh…
Detecting Overflows of 32-Bit Variables in Long Loops in 64-Bit Programs

Date: 22 Mar 2016

Author: Andrey Karpov

One of the problems that 64-bit software developers have to face is overflows of 32-bit variables in very long loops. PVS-Studio code analyzer is very good at catching issues of this type (see the Vi…
Is it possible to run 64-bit applications in a 32-bit OS?

Date: 08 Déc 2015

Author: Andrey Karpov

Nowadays 64-bit operating systems are very widespread. But 32-bit OS are still present on the market, in quite obvious quantities. A lot of modern program tools are developed to be run only in 64-bit…
How to Port a 9 Million Code Line Project to 64 bits?

Date: 03 Aoû 2015

Author: Evgeniy Ryzhkov, Ilya Ivanov

Our team has recently finished porting one pretty large project (9 million code lines, 300 Mbytes of source files) to the 64-bit platform. It took us one year and a half. Although we are not permitte…

Comments (0)

Next comments
Unicorn with delicious cookie
Nous utilisons des cookies pour améliorer votre expérience de navigation. En savoir plus