我正在使用Visual Studio在C中构建Windows应用程序,我需要在DialogProc回调函数中设置外部变量的值。
对于字符串变量,我使用strcpy,这是有效的。但是,当涉及到'double'类型的变量时,我会陷入困境。有人可以建议一个合适的方法吗?也许是strcpy(对于字符串)更好的替代方法?
我正在从文本框中分配变量expName
,如下所示:
GetDlgItemTextA(hwnd, IDC_EDIT1, expName, 100);
然后使用strcpy
将其复制到我的回调函数之外的结构中。
strcpy(myExperiment[free].name, expName);
我最初尝试myExperiment[free].name = expName;
但是当函数结束时expName
不再存在,所以我无法访问该值。
当函数结束时使用strcpy
我仍然可以访问任何expName
,但是如果输入是双精度,我不知道如何做到这一点。这就是我尝试过的(对于不同的结构):
double flowrate = GetDlgItemInt(hwnd, IDC_EDIT3, NULL, FALSE);
memcpy(&myParameters[0][0].flowrate, &flowrate, sizeof(double));