gpt4 book ai didi

c++ - 如何使用 FLTK in-box.get_string()

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:12 25 4
gpt4 key购买 nike

以下代码是应用程序的一小部分。对于该应用程序,我需要使用 in_box.get_string()。 in_box的声明和定义在thisGUI.hGUI.cpp 文件中的地址。

对于整数,它工作正常。也就是说,如果我使用 in_box.get_int(),它会获取输入到 in_box 中的数字,并将该数字作为 integer 返回。但问题是,正如预期的那样,它不适用于 strings。当使用字符串时,我会出错!

例如在下面的代码中我使用了一个string s

#include <GUI.h>
#include <iostream>
using namespace Graph_lib;

class Calculator : public Window {
public:
Calculator(Point, int, int, const string&);

private:
//Widgets
Button show_button;
In_box enter_box;

void show() { getstr(); cout <<s; }

void getstr() {
s = enter_box.get_string();
}

static void cb_show(Address, Address pw) { reference_to<Calculator>(pw).show(); }
string s;
};

//---------------------------------------------------------------------

Calculator::Calculator(Point xy, int w, int h, const string& title):
Window(xy, w, h, title),
show_button(Point(x_max()-110, 440), 90, 35, "Show", cb_show),
enter_box(Point(x_max()-400, 158), 245, 40, "Enter"){

attach(enter_box);
attach(show_button);
}

int main()
{
Calculator cal(Point(100,100), 600, 500, "Calculator");
return gui_main();
}

有 8 个警告和两个错误。错误是这些:

Error 9 error LNK2019: unresolved external symbol "public: class std::basic_string,class std::allocator > __thiscall Graph_lib::In_box::get_string(void)" (?get_string@In_box@Graph_lib@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "private: void __thiscall Calculator::getstr(void)" (?getstr@Calculator@@AAEXXZ) C:\Users\ME\documents\visual studio 2012\Projects\test_3\test_3\test_3.obj Error 10 error LNK1120: 1 unresolved externals C:\Users\ME\documents\visual studio 2012\Projects\test_3\Debug\test_3.exe

错误表明,这是一个链接器问题,但我的链接器输入的文件列表如下,到目前为止(几乎)工作正常。

fltkd.lib
wsock32.lib
comctl32.lib
fltkjpegd.lib
fltkimagesd.lib

我的编译器是 MS VS 2012。机器是 Win 7。

请问有人知道如何解决这个问题吗?

最佳答案

如果您在调试和 Release模式下编译了 FLTK,请确保您具有正确的链接器依赖项:您为调试列出的文件,以及 fltk.libwsock32.libcomctl32.libfltkjpegd.libfltkimages.lib 用于 Release(注意名称末尾没有“d” ).

其次,即使我不认为它会导致链接器错误(但会导致其他奇怪的问题),请确保您已将所有 Stroustrup 图形库文件包含在您的 Visual Studio 项目中:fltk.h , Graph.h, GUI.h, Point.h, Simple_window.h, < strong>std_lib_facilities.h、Window.hGraph.cppGUI.cppWindow.cpp.

关于c++ - 如何使用 FLTK in-box.get_string(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com