Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有与“调用”匹配的函数;MessageDlg"; >我收到一个错误,表示它们在C++ +Builder中调用“ MasaGeDelg())没有匹配函数。_C++_C++builder - Fatal编程技术网

没有与“调用”匹配的函数;MessageDlg"; >我收到一个错误,表示它们在C++ +Builder中调用“ MasaGeDelg())没有匹配函数。

没有与“调用”匹配的函数;MessageDlg"; >我收到一个错误,表示它们在C++ +Builder中调用“ MasaGeDelg())没有匹配函数。,c++,c++builder,C++,C++builder,我的头文件确实包含,函数就是在这里声明的。正在从t表单类公共函数中调用该函数。以下是违规代码: void MBInvalidPosition() { MessageDlg("Invalid Position Selected. Please Try Again", mtError,mbOK,0); } 如有任何想法,将不胜感激。谢谢。C++支持重载函数-您调用的函数是其名称和提供给它的参数类型的乘积。因此,假设您有正确的函数名,合理的第一个猜测是您为

我的头文件确实包含
,函数就是在这里声明的。正在从
t表单
类公共函数中调用该函数。以下是违规代码:

void MBInvalidPosition() {
    MessageDlg("Invalid Position Selected. Please Try Again",
        mtError,mbOK,0);
}

如有任何想法,将不胜感激。谢谢。

C++支持重载函数-您调用的函数是其名称和提供给它的参数类型的乘积。因此,假设您有正确的函数名,合理的第一个猜测是您为其中一个参数提供了错误的类型


具体来说,它看起来不像
mbOK
可以像那样原始提供-
MessageDlg
需要第三个
TMsgDlgButtons
类型的参数,但是
mbOK
TMsgDlgBtn
类型的参数。创建一组只包含OK按钮的按钮的合适方法是
tmsglgbuttons()C++支持重载函数-您调用的函数是其名称和提供给它的参数类型的乘积。因此,假设您有正确的函数名,合理的第一个猜测是您为其中一个参数提供了错误的类型


具体来说,它看起来不像
mbOK
可以像那样原始提供-
MessageDlg
需要第三个
TMsgDlgButtons
类型的参数,但是
mbOK
TMsgDlgBtn
类型的参数。创建仅包含OK按钮的一组按钮的适当方法是
tmsglgbuttons(),仅供参考-由于使用了XE2+,第一个参数将使用
UnicodeString
,但会传入一个窄字符串文本(
const char[44]
)。虽然这将“工作”良好,但它确实涉及到运行时的ANSI->Unicode转换。为了避免这种开销,您应该提供Unicode字符串文本,即:
MessageDlg(L“…”,…)
或者更好的
MessageDlg(_D(“…”),)
@Tommy。谢谢你的提示。它就像一个符咒。作为C+Builder的新手,我不知道你不能传递直接按钮ID。谢谢。@RemyLebeau:谢谢你的提示。另外,仅供参考-由于使用了XE2+,第一个参数将使用
UnicodeString
,但会传递一个窄字符串文本(
const char[44]
)。虽然这将“工作”良好,但它确实涉及到运行时的ANSI->Unicode转换。为了避免这种开销,您应该提供Unicode字符串文本,即:
MessageDlg(L“…”,…)
或者更好的
MessageDlg(_D(“…”),)
@Tommy。谢谢你的提示。它就像一个符咒。作为C+Builder的新手,我不知道你不能传递直接按钮ID。谢谢。@RemyLebeau:谢谢你的提示。
void MBInvalidPosition() {
    MessageDlg("Invalid Position Selected. Please Try Again",
        mtError,TMsgDlgButtons() << mbOK,0);
}