c++ - 对“MessageDlg”的调用没有匹配的函数
问题描述
我收到一个错误,表明它们MessageDlg()
在 C++ Builder 中没有匹配的调用函数。
我的头文件确实包含<Vcl.Dialogs.hpp>
声明函数的位置。该函数是从TForm
类公共函数中调用的。下面是有问题的代码:
void MBInvalidPosition() {
MessageDlg("Invalid Position Selected. Please Try Again",
mtError,mbOK,0);
}
任何想法将不胜感激。谢谢。
解决方案
C++ 支持重载函数——你调用的函数是它的名字和提供给它的参数类型的乘积。因此,假设您有正确的函数名称,一个合理的第一个猜测是您为其中一个参数提供了错误的类型。
具体来说,它看起来不像mbOK
可以像那样提供 raw ——MessageDlg
想要第三个 type 参数,TMsgDlgButtons
但mbOK
它是 type TMsgDlgBtn
。创建一组仅包含 OK 按钮的按钮的适当方法是TMsgDlgButtons() << mbOK
. 所以:
void MBInvalidPosition() {
MessageDlg("Invalid Position Selected. Please Try Again",
mtError,TMsgDlgButtons() << mbOK,0);
}
推荐阅读
- python - 在 wx 应用程序中嵌入 visvis 图形
- github-pages - 使用 Hugo 构建页面时 Git 子模块失败
- substrate - 在 Polkadot-js 中是否有创建 HD 钱包地址的方法
- python - 如何在 tensorflow 2.0 中选择“tensorflow.keras”和“tensorflow.python.keras”?
- sql - 如果另一列为空(但不是 NULL),我如何更新列?
- entity-framework - 从 .sql 文件插入 SQL 关键字
- react-native - 在 android 6 及以下版本上反应原生 Flatlist 空白区域
- python - 减少校准中的测量次数
- mime-types - 更改应用程序/xml 全局的默认服务首选项
- python - Python 类型:返回类型与 Java Clazz 中的 Clazz[T] 等泛型