0

我正在尝试比较 wxstrings 以确定我的程序将做什么。我正在比较的字符串基于我正在读取的文件,并且是文件中的唯一行。

我正在使用激活 wxSmith 的代码块。

这是我正在尝试开始工作的程序部分。

void Disc_MasterFrame::OncdiscClick(wxCommandEvent& event)
{
    system("sh detect-disc.sh");

    wxString file;
    file << wxT("detect-disc");
    wxTextFile tfile;
    tfile.Open(file);
    detectdiscw=tfile.GetFirstLine();

    //std::ifstream myfile ("detect-disc");
    //getline (myfile,detectdisc);
    //myfile.close();

    cd << wxT("An audio cd was inserted.");
    dvd << wxT("A dvd was inserted.");

    if (detectdiscw == cd){
        //musicrip->Show();
        //this->Disc_MasterFrame::ripmusic();
        void ripmusic();
    }
    else if (detectdiscw == dvd)
    {
        manipdvd->Show();
        void dvdmanip();
    }
}

void Disc_MasterFrame::ripmusic()
{
    musicrip->Show();
    system("sh disc-info.sh");
    ...

单击按钮时,脚本应该运行,因为它使用 cdde 命令(linux/ubuntu cli 程序)生成一个文件。此命令的结果是“插入了音频 cd”。所以我在测试时有一致性。

然后它打开并读取文件并尝试将其与两个预定义的字符串进行比较。一旦完成,它应该“显示”已经创建的两个面板之一。

我很确定我做错了什么,因为它只是在单击按钮后坐在那里。

任何帮助或指导将不胜感激,谢谢。

4

2 回答 2

0

The problem lies within your lines

void ripmusic();

and

void dvdmanip();

You intend to call these functions, but those are function declarations, not function calls. In other words, they do nothing. Your functions ripmusic and dvdmanip are never called.

于 2015-04-11T08:05:50.710 回答
0

在 wxString 中,<< 将字符串附加到现有值(类似于 + 的作用,但如果需要,可以进行方便的类型转换)。我不确定这是你真正想要做的。如果要为字符串分配新值,则应将 << 替换为 =

于 2015-04-10T00:26:56.510 回答