鱼油,你好!你提到的这个报警类型不匹配问题是由于 `MessageBox` 函数的参数错误引起的。
在 `MessageBox` 中传递字符串变量 `str` 时,不应该添加双引号 `_T("str")`,直接传递变量即可。
另外,关于 `PLCRdata` 的格式化,有两个 `str1` 和 `str2`,但值是一样的,可能是复制粘贴或逻辑有误。
这里是修正后的代码:
void CFX3UDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
CString str, str1, str2;
if (m_FXPLC.ReadDeviceRandom(_T("D50\nD60"), 2, PLCRdata) == 0x00)
{
// 假设 PLCRdata 是一个数组,并且我们要读取第一个和第二个数据
str1.Format(_T("%d"), PLCRdata[0]);
str2.Format(_T("%d"), PLCRdata[1]);
str = str1 + _T(",") + str2;
// 这里直接使用str变量,而不是_T("str")
MessageBox(str);
}
}
总结:
1. `MessageBox()` 传参时直接使用字符串变量。
2. 确保 `PLCRdata` 是数组并正确访问数组元素。
希望这个解释对你有所帮助!如果你还有其他问题,随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |