xuese_luochen 2020-11-02 23:52 采纳率: 0%
浏览 165

在MFC中调用SFML库报错,显示无法解析的外部符号

求求大佬们帮忙看看什么情况

代码是为了实现动态打印二叉树,下面是用SFML库实现打印二叉树的函数以及按钮内部函数。

inline int printtree(Date *T,float x,float y)
{
    CString str1 = T->str;
    char* p = (LPSTR)(LPCTSTR)str1;
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");

    if (T->str)
    {
        sf::CircleShape shape(20.f);
        shape.setFillColor(sf::Color::White);
        shape.setPosition(x,y);

        sf::Font font;
        if (!font.loadFromFile("arial.ttf"))
        {
        }
        sf::Text text;
        text.setString(p);
        text.setPosition(x, y);
        sf::Time time = sf::seconds(2.f);
        sf::sleep(time);
        if (printtree(T->leftnext, x - (200 - y), y + 20))
        {
            sf::Vertex line[] =
            {
                sf::Vertex(sf::Vector2f(x,y)),
                sf::Vertex(sf::Vector2f(x+200-y,y+20))
            };
            window.draw(line, 2, sf::Lines);
        }
        if (printtree(T->rightnext, x - (200 - y), y + 20))
        {
            sf::Vertex line[] =
            {
                sf::Vertex(sf::Vector2f(x,y)),
                sf::Vertex(sf::Vector2f(x+200-y,y+20))
            };
            window.draw(line, 2, sf::Lines);
        }
        return 1;
    }
    return 0;
}


void CDlgExec1::OnBnClickedOk()
{
    // TODO: 在此添加控件通知处理程序代码

    Tree tree;
    CString str1, str2;

    m_edit1.GetWindowTextW(str1);
    m_edit2.GetWindowTextW(str2);
    if (repeat(str1) || repeat(str2))
    {
        if (equal_length(str1, str2))
        {
            if (mate1(str1, str2)==1)
            {
                Date* p = new Date;
                p=tree.CreateBinTree1(str1, str2);
                MessageBox(TEXT("二叉树创建成功"));
                printtree(p, 350, 100);
            }
            else MessageBox(TEXT("两个表达式不匹配"));

        }
        else MessageBox(TEXT("两个表达式不是同等长度"));
    }
    else MessageBox(TEXT("两个表达式中有重复元素,无法使用"));
}

最后代码报错,显示23个无法解析的外部符号
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 "__declspec(dllimport) public: thiscall sf::String::String(char const *,class std::locale const &)" (imp_??0String@sf@@QAE@PBDABVlocale@std@@@Z),函数 "void __cdecl woshishei(void)" (?woshishei@@YAXXZ) 中引用了该符号 MFC_SHANGJI E:\sfml\MFC_SHANGJI\CDlgExec1.obj 1

  • 写回答

1条回答 默认 最新

  • wlj1234 2020-11-04 08:27
    关注

    需要引用SFML的相关库

    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line