0

CFileDialog次のメソッドでコンストラクターを呼び出します。

CFileDialog FileDlg(TRUE, ".txt", NULL, 0, strFilter);

CFileDialogコンストラクターのパラメーターによると、最初のパラメーターは である必要がありますBOOLが、コンパイラーはintではなく であると考えていBOOLます。なぜか教えてくれますか?

また、コードでは、 を使用するfopen(str,"r")と、エラーは からの変換関数ではありませんCSring to const char*。あなたの議論に感謝します。

コードは次のとおりです。

void OnFileOpen()
{
    CClientDC dc(this);
    CString str;
    CRect rc;
    FILE *ifp;
    char strFilter[] = { "TXT Files (*.txt)|*.txt|All Files(*.*)|*.*||" };
    CFileDialog FileDlg(TRUE, ".txt", NULL, 0, strFilter);
    if (FileDlg.DoModal() == IDOK)
    {
        str = FileDlg.GetFileName();
        ifp = fopen(str,"r");
        dc.TextOutW(350, 50, "File Opened: " + str);
        for (int i = 1; i < n; i++)
        {
            fscanf(ifp, "%d %d", &pt[i].x, &pt[i].y);
            rc = CRect(pt[i].x - 30, pt[i].y - 30, pt[i].x + 30, pt[i].y + 30);
            dc.Ellipse(rc);
            rc = CRect(pt[i].x - 1, pt[i].y - 1, pt[i].x + 1, pt[i].y + 1);
            dc.Rectangle(rc);
        }
        fclose(ifp);
    }
}
4

0 に答える 0