Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двумерный массив как параметр функции, Ошибка при при компиляции (qt 3.3.5 kde) 
:(
    Опции темы
ramb
Дата 30.11.2006, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.11.2006

Репутация: нет
Всего: нет



Возникает ошибка при компиляции. Не пойму что указываю не так (qt 3.3.5, FreeBSD 6.1, kde)

Выдержки из исходников:

ksyncsystemtray.h:
#include ...
 ....
class KSyncSystemTray : public KSystemTray
{
        Q_OBJECT

public:
....
char string2[11][100];
public slots:
        void Clicked();
signals:
           void signal_sig(char  [][100] , char [][100], char [][100] );
};

ksyncsystemtray.cpp:
#include ...
...
KSyncSystemTray::KSyncSystemTray(QWidget* parent,  const char* name) : KSystemTray()
{
....
connect( this, SIGNAL( signal_sig(char [][100] ,char [][100],char [][100]) ), wid, SLOT( slotCreateSig(char [][100],char [][100],char [][100]) ) );
}
void KSyncSystemTray::Clicked(void)
{
....
emit signal_sig(string2,string2,string2);
}

#include "ksyncsystemtray.moc"

Далее:  moc ksyncsystemtray.h -o ksyncsystemtray.moc
Затем компиляция (все компилируется кроме ksyncsystemtray):
qmake -spec /usr/local/share/qt/mkspecs/freebsd-g++ -o Makefile sigcreate.pro
make

Ошибки:
n file included from ksyncsystemtray.cpp:587:
ksyncsystemtray.moc:92: error: expected `,' or `...' before "t0"
ksyncsystemtray.moc:93: error: prototype for `void KSyncSystemTray::signal_sig(char (*)[100])' does not match any in class `KSyncSystemTray'
ksyncsystemtray.h:141: error: candidate is: void KSyncSystemTray::signal_sig(char (*)[100], char (*)[100], char (*)[100])
ksyncsystemtray.moc: In member function `void KSyncSystemTray::signal_sig(char (*)[100])':
ksyncsystemtray.moc:100: error: `t0' undeclared (first use this function)
ksyncsystemtray.moc:100: error: (Each undeclared identifier is reported only once for each function it appears in.)
ksyncsystemtray.moc:101: error: `t1' undeclared (first use this function)
ksyncsystemtray.moc:102: error: `t2' undeclared (first use this function)
ksyncsystemtray.moc: In member function `virtual bool KSyncSystemTray::qt_emit(int, QUObject*)':
ksyncsystemtray.moc:119: error: expected primary-expression before "char"
ksyncsystemtray.moc:119: error: expected `)' before "char"

Кусок из moc-файла:
// SIGNAL signal_sig
строчка 92   void KSyncSystemTray::signal_sig( char[][100] t0, char[][100] t1, char[][100] t2 )
{
    if ( signalsBlocked() )
        return;
    QConnectionList *clist = receivers( staticMetaObject()->signalOffset() + 0 );
    if ( !clist )
        return;
    QUObject o[4];
    static_QUType_ptr.set(o+1,&t0);
    static_QUType_ptr.set(o+2,&t1);
    static_QUType_ptr.set(o+3,&t2);
    activate_signal( clist, o );
}

Наставте, плиз, на путь истинный. Совсем запутался.

PM MAIL   Вверх
bsa
Дата 1.12.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



замени: void KSyncSystemTray::signal_sig( char[][100] t0, char[][100] t1, char[][100] t2 )
на: void KSyncSystemTray::signal_sig( char t0[][100], char t1[][100], char t2[][100])

Это сообщение отредактировал(а) bsa - 1.12.2006, 18:35
PM   Вверх
ramb
Дата 2.12.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.11.2006

Репутация: нет
Всего: нет



Заменил в moc-файле, как посоветовали, ошибки с декларированием t0-t2 исчезли, но остались ошибки строчки 119:

In file included from ksyncsystemtray.cpp:600:
ksyncsystemtray.moc: In member function `virtual bool KSyncSystemTray::qt_emit(int, QUObject*)':
ksyncsystemtray.moc:119: error: expected primary-expression before "char"
ksyncsystemtray.moc:119: error: expected `)' before "char"

ksyncsystemtray.moc:
bool KSyncSystemTray::qt_emit( int _id, QUObject* _o )
{
    switch ( _id - staticMetaObject()->signalOffset() ) {
строчка 119    case 0: signal_sig((char[][100])*((char[]**)static_QUType_ptr.get(_o+1)),(char[][100])*((char[]**)static_QUType_ptr.get(_o+2)),
                                                                                                                             (char[][100])*((char[]**)static_QUType_ptr.get(_o+3))); break;
    default:
        return KSystemTray::qt_emit(_id,_o);
    }
    return TRUE;
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.