Вопросы, на которые я не нашёл ответ в книгах (Помогите, пожалуйста)

Модератор: Модераторы разделов

Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

Проблему с логом мы вместе решили. Спасибо. Решил сделать BASH оболочку и использовать cerr, так как мне bash оболочка так и так понадобилась бы.

Следующий вопрос:
Он заключается в том, чтобы рационально передавать аргументы функциям других объектов и не только. Я привык передавать объекты классов по ссылке, чтобы сыкономить память, но стокнулся с проблемой. Одна функция, которую я не могу поправить(QObject::tr()) возвращает QString. То-есть просто объект QString.
Пример:

Код: Выделить всё

,,,,,
treeWidget->setContextMenuHeader(tr("Main Tree widget"));
.....
void setContextMenuHeader(QString &headerText);
.....

Вот какая ошибка при компиляции:
sources/treewidget.cpp: In member function ‘void TreeWidget::setContextMenuHeader(QString)’:
sources/treewidget.cpp:31: ошибка: нет подходящей функции для вызова ‘Menu::setHeaderText(const QString&)’


Я если честно даже не знаю что и делать. Для меня 2 самые главные задачи в данной ситуации: 1) Использовать как можно меньше памяти 2)Не много строк кода(не хочу чтобы у меня файлы содержали 1000-и строк). В общем хочу написать по настоящему "красивое" изнутри приложение.
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
08.05.2008 16:57
Он заключается в том, чтобы рационально передавать аргументы функциям других объектов и не только. Я привык передавать объекты классов по ссылке, чтобы сыкономить память, но стокнулся с проблемой. Одна функция, которую я не могу поправить(QObject::tr()) возвращает QString. То-есть просто объект QString.


Код: Выделить всё

,,,,,
treeWidget->setContextMenuHeader(tr("Main Tree widget"));
.....
void setContextMenuHeader(QString &headerText);
.....

Вот какая ошибка при компиляции:
sources/treewidget.cpp: In member function ‘void TreeWidget::setContextMenuHeader(QString)’:
sources/treewidget.cpp:31: ошибка: нет подходящей функции для вызова ‘Menu::setHeaderText(const QString&)’


Я если честно даже не знаю что и делать. Для меня 2 самые главные задачи в данной ситуации: 1) Использовать как можно меньше памяти 2)Не много строк кода(не хочу чтобы у меня файлы содержали 1000-и строк). В общем хочу написать по настоящему "красивое" изнутри приложение.


Она правильно отказывается принимать объект в вашем случае, поскольку возвращаемая tr QString является временным объектом, которые могут передаваться по конст референс, но не просто референс. Почему метод куте принимает аргумент по не конст реф - это уж надо копаться в исходниках куте за каким оно так. В вашем случае - возвращаемую tr строку придется сохранить в какой-то переменной.

Что касается "экономии памяти" - проверьте реализацию куте строк на предмет CoW. Строки в стдлиб гнутой реализации (и большинстве адекватных, полагаю) используют CoW и передача-возврат и по значению приводит к относительно небольшим издержкам, а в сочетнии с return-value-optimization может не иметь их и вовсе в отдельных случаях. )

P.S.: И документацию на сетЧегоТам еще разок гляньте. Возможно оно берет не конст реф потому, что строку не копирует, и она _должна_ у вас сохраняться все время; и изменения в строке при следующем обновлении экрана будут автоматически "учтены" и отображены в интерфейсе. Мало ли.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
08.05.2008 17:15
Что касается "экономии памяти" - проверьте реализацию куте строк на предмет CoW. Строки в стдлиб гнутой реализации (и большинстве адекватных, полагаю) используют CoW и передача-возврат и по значению приводит к относительно небольшим издержкам, а в сочетнии с return-value-optimization может не иметь их и вовсе в отдельных случаях. )

Если честно, ничего не понял... :(

P.S.: И документацию на сетЧегоТам еще разок гляньте. Возможно оно берет не конст реф потому, что строку не копирует, и она _должна_ у вас сохраняться все время; и изменения в строке при следующем обновлении экрана будут автоматически "учтены" и отображены в интерфейсе. Мало ли.

По сути меня не волнует что возвращает tr(), я просто хочу попросить совет что мне лучше всего сделать, чтобы сократить объём кода и обеспечить стабильность программы с малым потреблением памяти.
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
08.05.2008 17:44
Если честно, ничего не понял... :(


http://en.wikipedia.org/wiki/CoW
return value optimization - первая ссылка в гугль
Остальное вроде по-русски написано? )

А еще есть максима, что "ранняя оптимизация есть корень многих зол". :)

По сути меня не волнует что возвращает tr(), я просто хочу попросить совет что мне лучше всего сделать, чтобы сократить объём кода и обеспечить стабильность программы с малым потреблением памяти.

Увы. Первое, что для этого надо сделать - заволноваться вопросом что и нахрена возвращает тр()...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

Когда сделал аргементы функции constантными, программа скомпилировалась. То-есть прототип функции выглядет теперь так:

Код: Выделить всё

void setContextMenuHeader(const QString &headerText);

Откуда такой эффект?
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
08.05.2008 18:31
Откуда такой эффект?


DooM, я в первом ответе объяснял.


А, так эта сетКонтекстХедер была вашей а не кутешной. По-моему вам пора вникнуть глубоко в тему референсов и передачи туда-сюда. Вы путаетесь, похоже.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
08.05.2008 18:39
-DooM- писал(а):
08.05.2008 18:31
Откуда такой эффект?

DooM, я в первом ответе объяснял.

Увидел, спасибо большое.
А, так эта сетКонтекстХедер была вашей а не кутешной. По-моему вам пора вникнуть глубоко в тему референсов и передачи туда-сюда. Вы путаетесь, похоже.

К сожалению да :( Поэтому я заказал книгу Страусрупа по С++, чтобы глубже изучить этот язык.

Спасибо большое за помощь в решении очередного вопроса.
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

Я понимаю, что я сейчас прошу слишком много, но всё таки это очень сильно мне поможет в будущем. Я написал 1 класс, который отвечает да распознование устройств по средствам dbus с hal. Кода там не так уж и много (строк 100), класс состоит из двух файлов (заголовочный и исходник). Проанализируйте, пожалуйста весь код и укажите на возможные ошибки, неправильно использование каких-либо конструкций, как бы вы сделали, обратите внимание на создание объектов в цикле с помощью конструкции new и т.п. Очень хочется сделать все строки программы безупречными.


Буду очень благодарен!!!

P.S. Поздравляю всех с праздником!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

DooM, такие скромные по размеру исходники лучше вставлять сюда - больше народу прочитает. :) Так ведь, хоть оно по двум кликам мыши само и грузится и открывается в редакторе - людям же влом кликать. :)

У вас в классе raw указатель в членах, при этом я в упор не вижу дтора... В Hal::isStorageDevice вызов нью без вызова делит. (тут много знаков вопроса.............)

Этот код:

Код: Выделить всё

if (interface->isValid())
        std::cerr << "[G] DBus interface was created.\n";
    else
        std::cerr << "[E] DBus interface was not created.\n";

    QDBusReply<QStringList> reply = interface->call("GetAllDevices");
    if (reply.isValid())
        std::cerr << "[G] All devices were got.\n";
    else
        std::cerr << "[E] Cannot get all devices.\n";

    // Choose only storage devices
    foreach (QString deviceUdi,reply.value()) {

Интерфейс невалиден - выполнение продолжается. Вам точно нужен риплай от невалидного ифейса?
Риплай невалидный - выполнение продолжается. Вам точно нужно вэлью от невалидного риплая??
Ну и я как бы догадался, что ни один из вызовов в кторе никогда не может кинуть исключения... Иначе... ликс. ;) Или у вас там што, все new переопределены и GC?
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
09.05.2008 13:04
DooM, такие скромные по размеру исходники лучше вставлять сюда - больше народу прочитает. :) Так ведь, хоть оно по двум кликам мыши само и грузится и открывается в редакторе - людям же влом кликать. :)

В следующий раз так и буду делать ;)
У вас в классе raw указатель в членах, при этом я в упор не вижу дтора...

Во всех классах программы я создал дторы, спасибо за замечание.
В Hal::isStorageDevice вызов нью без вызова делит. (тут много знаков вопроса.............)

Можете подробнее описать эти вопросы. Именно эта функция мне не очень нравится.
Интерфейс невалиден - выполнение продолжается. Вам точно нужен риплай от невалидного ифейса?
Риплай невалидный - выполнение продолжается. Вам точно нужно вэлью от невалидного риплая??
Ну и я как бы догадался, что ни один из вызовов в кторе никогда не может кинуть исключения... Иначе... ликс. ;) Или у вас там што, все new переопределены и GC?

Понял, спасибо. Я думаю, что стоит использовать функцию exit() с выводом предупреждения, мол смотрите в лог.
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

Код: Выделить всё

bool Hal::isStorageDevice(const QString &deviceUdi) {
    QDBusInterface *deviceInterface = new QDBusInterface(


я про этот кусок локальная переменная указатель получает указатель на размещенный через нью объект.
1) где и как этот объект удаляется?
2) зачем его размещают через нью? почему не на стэке?
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
09.05.2008 14:01

Код: Выделить всё

bool Hal::isStorageDevice(const QString &deviceUdi) {
    QDBusInterface *deviceInterface = new QDBusInterface(


я про этот кусок локальная переменная указатель получает указатель на размещенный через нью объект.
1) где и как этот объект удаляется?

Нигде он не удаляется, не усмотрел. Теперь он удаляется перед return.
2) зачем его размещают через нью? почему не на стэке?

Что значит на стэке?
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
09.05.2008 14:05
Что значит на стэке?


Эээ... почему не так

Код: Выделить всё

QDBusInterface deviceInterface(HAL_SERVICE,deviceUdi,HAL_DEVICE_INTERFACE,QDBusConnection::systemBus());
QDBusReply<QString> categoryReply = deviceInterface.call("GetPropertyString","info.category");
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
09.05.2008 14:15
-DooM- писал(а):
09.05.2008 14:05
Что значит на стэке?


Эээ... почему не так

Код: Выделить всё

QDBusInterface deviceInterface(HAL_SERVICE,deviceUdi,HAL_DEVICE_INTERFACE,QDBusConnection::systemBus());
QDBusReply<QString> categoryReply = deviceInterface.call("GetPropertyString","info.category");


Не знаю.. Привычка наверное.

Всё остальное сделано логично?
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

Нифигасе привычка. :laugh:
Про логичность остального сможет сказать тот, кто имеет дело с дбас и хэл, и в курсе, что вы в целом делаете. :)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
09.05.2008 14:52
Нифигасе привычка. :laugh:
Про логичность остального сможет сказать тот, кто имеет дело с дбас и хэл, и в курсе, что вы в целом делаете. :)

Ну да, я знаю, что не очень полезная привычка... Буду отучаться.

P.S. Со мной желательно на "Ты" :)
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

Появился очередной вопрос по мере работы с dbus.

Мне нужно получить размер storage устройства и я в принципе знаю как это сделать, но проблема заклучает в том, что dbus возвращает значение с типом uint64, так как число может иметь 12 цифр. Тип uint64 моему компилятору неизвестен (он прям так и пишет при компиляции). Собственно я попал в тупик.

Вот код, к сожалению не работающий:

Код: Выделить всё

QDBusReply<uint64> sizeReply = deviceInterface->call("GetPropertyUInt64","storage.size");
uint64 size = sizeReply.value();


Пробовал изменять на unsinged int, но size тогда постоянно = 0.
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
10.05.2008 08:29
Мне нужно получить размер storage устройства и я в принципе знаю как это сделать, но проблема заклучает в том, что dbus возвращает значение с типом uint64, так как число может иметь 12 цифр. Тип uint64 моему компилятору неизвестен (он прям так и пишет при компиляции). Собственно я попал в тупик.


Попробуй

Код: Выделить всё

typedef unsigned long long uint64;

для i386, и

Код: Выделить всё

typedef unsigned long uint64;

для amd64. Первый вариант валиден для си99, невалиден для с++98, но его ГСС поддерживает в с++ как расширение.

Но вообще-то ты просто не подключил какие-то нужный хедеры. Этот тип уже где-то определен подобным образом...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
10.05.2008 11:02
-DooM- писал(а):
10.05.2008 08:29
Мне нужно получить размер storage устройства и я в принципе знаю как это сделать, но проблема заклучает в том, что dbus возвращает значение с типом uint64, так как число может иметь 12 цифр. Тип uint64 моему компилятору неизвестен (он прям так и пишет при компиляции). Собственно я попал в тупик.


Попробуй

Код: Выделить всё

typedef unsigned long long uint64;

для i386, и

Код: Выделить всё

typedef unsigned long uint64;

для amd64. Первый вариант валиден для си99, невалиден для с++98, но его ГСС поддерживает в с++ как расширение.

Но вообще-то ты просто не подключил какие-то нужный хедеры. Этот тип уже где-то определен подобным образом...

А как узнать какая архитектура? Я так понял с помощью директивы ifdef.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Rootlexx »

-DooM- писал(а):
10.05.2008 08:29
Тип uint64 моему компилятору неизвестен

А uint64_t?
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

Rootlexx писал(а):
10.05.2008 12:57
-DooM- писал(а):
10.05.2008 08:29
Тип uint64 моему компилятору неизвестен

А uint64_t?

Известно, ошибок нет. А чем эти типы отличаются?

Появилась новая непонятная ошибка. Код:

Код: Выделить всё

...
uint64_t sizeNumber;
....
QDBusReply<uint64_t> sizeReply;
if (isDisk())
                   sizeReply = deviceInterface->call("GetPropertyUInt64","storage.size");
else
    sizeReply = deviceInterface->call("GetPropertyUInt64","volume.size");
if (!sizeReply.isValid())
    std::cout << qPrintable(sizeReply.error().message()) << std::endl;
sizeNumber = sizeReply.value();

При компиляции ошибок нет, но при запуске программы:
Method "GetPropertyUInt64" with signature "s" on interface "org.freedesktop.Hal.Device" doesn't exist

Этот метод я брал из спецификации Hal интерфейсов: http://people.freedesktop.org/~david/hal-spec/hal-spec.html

Что это значит?
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
10.05.2008 12:41
А как узнать какая архитектура? Я так понял с помощью директивы ifdef.


DooM, где вы взяли, что вам нужен тип uint64?
Выполните у себя

Код: Выделить всё

egrep -nr '(typedef|#.*define).+[^[:alnum:]_]uint64[^[:alnum:]_]' /usr/include/

и посмотрите откуда он у вас берется. У меня только в постгрессовских хедерах такой есть, вряд ли это ваш.
А вот это даст кучу вариантов определений разных инт64 где попало:

Код: Выделить всё

egrep -inr '(typedef|#.*define).+int64' /usr/include/

Осталось выяснить, какой же из них можно считать самым "стандартным" и "правильным"...



Код: Выделить всё

$ egrep -nr '(typedef|#.*define).+[^[:alnum:]_]uint64_t[^[:alnum:]_]' /usr/include/
...skipped...
/usr/include/stdint.h:56:typedef unsigned long int      uint64_t;
/usr/include/stdint.h:59:typedef unsigned long long int uint64_t;


А это вам ссылка на доку:
http://www.gnu.org/software/libc/manual/ht...dint_002eh-2321
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
10.05.2008 13:15
-DooM- писал(а):
10.05.2008 12:41
А как узнать какая архитектура? Я так понял с помощью директивы ifdef.

DooM, где вы взяли, что вам нужен тип uint64?

Вот отсюда:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
10.05.2008 13:20
Вот отсюда:


По-моему там ясно написано, что UInt64, а не uint64? ;)
:tongue:
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
10.05.2008 13:23
-DooM- писал(а):
10.05.2008 13:20
Вот отсюда:


По-моему там ясно написано, что UInt64, а не uint64? ;)
:tongue:

Это разные вещи? О_о По крайней мере в Kate Uint64 не подсвечивает красненьким, а uint64_t подсвечивается :)
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
10.05.2008 13:24
Это разные вещи? О_о


Ну вообще-то, между нами ламерами, идентификаторы в сях case-sensitive. ;)
Так что с точки зрения синтаксиса это определенно две разные вещи. И если у вас в хедерах определен UInt64, то о uint64 компилятору ничего не известно. ;)
С точки зрения что за этими буквами скрывается - скорее всего одно и то же...

По крайней мере в Kate Uint64 не подсвечивает красненьким, а uint64_t подсвечивается

Если подключите хедер stdint.h то uint64_t поди тоже перестанет. ;) И тогда, возможно, вы даже сможете использовать один тип вместо другого, если это всего лишь тайпдефы к одному и тому же типу. Но так делать не надо.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

Какой бы тип я не писал, ошибка всё равно одна и таже :( В гугле найти ничего не могу. Что же это может означать?
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
10.05.2008 13:52
Какой бы тип я не писал, ошибка всё равно одна и таже :( В гугле найти ничего не могу. Что же это может означать?

КАКАЯ??? Ошибку-то наконец процитируй. :)

Вот эта:
Method "GetPropertyUInt64" with signature "s" on interface "org.freedesktop.Hal.Device" doesn't exist
??
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение Assuri »

sergio писал(а):
10.05.2008 13:56
-DooM- писал(а):
10.05.2008 13:52
Какой бы тип я не писал, ошибка всё равно одна и таже :( В гугле найти ничего не могу. Что же это может означать?

КАКАЯ??? Ошибку-то наконец процитируй. :)

Вот эта:
Method "GetPropertyUInt64" with signature "s" on interface "org.freedesktop.Hal.Device" doesn't exist
??
Именно.
Я нашёл, что нужный мне тип: 64-bit unsigned int(ASCII 't'). Это и есть uint64_t? Судя по все да. Тогда я тем более не понимаю откуда ошибка...
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Вопросы, на которые я не нашёл ответ в книгах

Сообщение sergio »

-DooM- писал(а):
10.05.2008 14:34
Я нашёл, что нужный мне тип: 64-bit unsigned int(ASCII 't'). Это и есть uint64_t? Судя по все да. Тогда я тем более не понимаю откуда ошибка...


Я не читал ту спецификацию, но насколько видно в таблице, нужный вам тип - UInt64. А с вопросом наверное надо в отдельную тему с цитированьем всего неоходимого кода и на соседний форум. Не для новичков. ;)

P.S.: А вообще их там сам черт не разберет. В одной таблице UInt64 в десяти других местах - uint64. Не удивительно, что потом ни хрена не работает. ;)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали: