QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 988|回复: 10

写了一段KDE程序,运行的时候Segment fault

[复制链接]
发表于 2005-8-12 06:29:41 | 显示全部楼层 |阅读模式
RT

不知为什么

请教达淫

[code:1]#include <qcstring.h>
#include <qapplication.h>
#include <kcmoduleloader.h>
#include <kcmultidialog.h>
#include <kdialogbase.h>
#include <kcmoduleinfo.h>
#include <kservice.h>
#include <kdebug.h>
#include <qfile.h>

static KService::Ptr locateModule(const QCString& module)
{
    QString path = QFile::decodeName(module);

    if (!path.endsWith(".desktop"))
        path += ".desktop";

    KService::Ptr service = KService::serviceByStorageId( path );
    if (!service)
    {
        kdWarning(780) << "Could not find module '" << module << "'." << endl;
        return 0;
    }

    if(!KCModuleLoader::testModule( module ))
    {
        kdDebug(780) << "According to \"" << module << "\"'s test function, it should Not be loaded." << endl;
        return 0;
    }

    return service;
}



int main( int argc, char ** argv )
{
    QApplication a( argc, argv );
    KDialogBase::DialogType dtype = KDialogBase::Plain;
    KCMultiDialog *dlg = new KCMultiDialog( dtype,
            QString("Configure"), 0, "", true );
    KService::List modules;
    KService::Ptr service = locateModule(QCString("kdm"));
    if( service )
    {
        modules.append(service);
    }
    for (KService::List::ConstIterator it = modules.begin(); it != modules.end(); ++it)
        dlg->addModule(KCModuleInfo(*it));
    dlg->exec();
    delete dlg;
    return 0;
}
[/code:1]
发表于 2005-8-12 09:07:08 | 显示全部楼层
但不懂QT的说,帮顶
回复

使用道具 举报

 楼主| 发表于 2005-8-12 09:58:18 | 显示全部楼层
谢谢Kan

继续召唤达淫
回复

使用道具 举报

发表于 2005-8-12 10:49:48 | 显示全部楼层
kde怎么和qt差这么多阿? stdio, 是哪里出fault了? 可以跟么?
回复

使用道具 举报

 楼主| 发表于 2005-8-12 10:52:26 | 显示全部楼层
汗……

gdb跟踪是这句

[code:1]KCMultiDialog *dlg = new KCMultiDialog( dtype,
            QString("Configure"), 0, "", true ); [/code:1]

出错了

我用type t;新建的方法也是一样出错

没辙了-_-!!!
回复

使用道具 举报

发表于 2005-8-12 10:57:03 | 显示全部楼层
是不是那个玩意需要先分配内存的!
回复

使用道具 举报

 楼主| 发表于 2005-8-12 10:58:07 | 显示全部楼层
汗……

new 不是就分配了嘛~~~
回复

使用道具 举报

发表于 2005-8-12 10:59:48 | 显示全部楼层
也许是dtype,
            QString("Configure"), 0, "", true 这里面需要呢?偶不懂C++的说,有没有C++的书,共享一下!
回复

使用道具 举报

 楼主| 发表于 2005-8-12 11:02:55 | 显示全部楼层
去google一下吧

有很多的
回复

使用道具 举报

 楼主| 发表于 2005-8-12 11:24:39 | 显示全部楼层
kao!

刚才用KApplication试了一下,竟然能运行

-_______________________-!!!!!!!!
回复

使用道具 举报

发表于 2005-8-12 22:24:02 | 显示全部楼层
KDE 的程序必须有 kapplication 的,qapplication 是不够用的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 13:39 , Processed in 0.043835 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表