我不确定为什么会发生这种情况,但似乎它错误地抛出了“未在此范围内声明”错误。我这样说是因为它适用于我的 Windows 计算机(MSVC 编译器),但它不适用于我的 Mac(GCC)。我正在使用 Qt Creator 来编写这个。这是我的情况:
它在我的 pushButtonClicked 上引发错误...
void NewGpdDialog::on_pushButton_clicked()
{
*xdbf = XDBFcreate(filePath.toStdString(), Achievement, ba.data(), ba.size(), &str);
}
它抛出的确切错误是:
.../newgpddialog.cpp:63:错误:未在此范围内声明“XDBFcreate”
我几乎肯定它已被标定,因为在我的文件顶部我包括:
#include "newgpddialog.h"
#include "ui_newgpddialog.h"
#include "xdbf.h"
#include <QDesktopServices>
#include <QBuffer>
#include <QFileDialog>
#include <QMessageBox>
“xdbf.h”是它被声明的地方......这是我的 XDBF 头文件的一部分:
class XDBF
{
public:
XDBF(string path);
~XDBF();
...
static std::string FILETIME_to_string(FILETIME *pft);
friend XDBF* XDBFcreate(string filePath, GPD_Type type, char *imageData = NULL, size_t imageDataLen = 0, wstring *gameName = NULL);
我现在将它放在我的“xdbf.cpp”文件中,如下所示:
XDBF* XDBFcreate(string filePath, GPD_Type type, char *imageData, size_t imageDataLen, wstring *gameName)
{
...
}
另外,有趣的是,如果我在标题中右键单击它,然后单击“跟随光标下的符号”,它就找不到它...另一件事是,请记住,这适用于我的 Windows 计算机。