2013-04-12 29 views
1

我正在研究需要将类型double的数据值存储到注册表的应用程序。我使用的是MFC,但是我看到用于完成这项工作的“theApp”中的唯一功能是GetProfileIntW,GetProfileStringWGetProfileBinary。在保持尽可能高精度的同时存储和检索数据的最佳方式是什么?MFC向注册表写入双重数据类型

+0

是否有某些原因不直接使用Win32注册表功能? –

+0

@CareyGregory,MFC自动将您的密钥放在注册表中的适当位置。这只是一个方便的事情。 –

回答

3

GetProfileBinary函数是唯一合理的选择。使用字符串意味着做转换,并且在很多情况下使用int将会失去精度。

double *pMyDouble; 
UINT size = sizeof(*pMyDouble); 
GetProfileBinary(sectionName, valueName, (LPBYTE *)&pMyDouble, &size); 
double myDouble = *pMyDouble; 
+0

我收到第三个参数的错误: “参数类型'double *'与参数类型'LPBYTE *'不兼容。” –

+1

@TimothyChapman,只是投了指针。 –

+0

@TimothyChapman编辑添加演员。 –