なぜこれが起こっているのかわかりませんが、「このスコープで宣言されていません」というエラーが誤ってスローされているようです。これは、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)
{
...
}
また、興味深いのは、ヘッダーで右クリックして「カーソルの下のシンボルをたどる」をクリックしても見つからないことです...もう1つのことは、これが私のWindowsコンピューターで機能することを覚えておいてください.