Russian Qt Forum

Qt => Qt Embedded => Тема начата: wholeman от Сентябрь 22, 2009, 10:42



Название: Ошибка VC2008 в генерации кода для WinCE. Кто-нибудь сталкивался?
Отправлено: wholeman от Сентябрь 22, 2009, 10:42
Прикупил на-днях по акции Visual Studio 2008 Prof. Решил собрать пару Qt-проектов (успешно работающих под MingW и Linux) для WinCE. Поставил WM60Prof SDK и собрал соответствующий Qt. Одна программа собралась и работает нормально, но очень долго грузится/выгружается. А в другой обнаружилась следующая особенность компилятора: если функция определена внутри класса, то ей передаётся кривой this. Следующий код приведён только для пояснения. Я не проверял, но уверен, что он работает.  Ошибка проявляется в намного более сложной ситуации.
== sample.hpp ==
class Sample
{
int Size;
public:
int size() const { return Size; } // Возвращает полный бред.
}; // Sample
=============

Если определить функцию вне класса, то всё нормально:
== sample.hpp ==
class Sample
{
int Size;
public:
int size() const; // Работает!
}; // Sample
== sample.cpp ==
#include "sample.hpp"
int Sample::size() const { return Size; }
=============

Если кто-то сталкивался с подобной ситуацией или знает правильный русскоязычный форум для этих вопросов, буду весьма признателен.

На всякий случай:
OS: Vista Business x64.
SDK: WM 6.0 Professional
QT: 4.5.2, собран в консоли VC++ для x64 (может, здесь собака порылась?).


Название: Re: Ошибка VC2008 в генерации кода для WinCE. Кто-нибудь сталкивался?
Отправлено: wholeman от Сентябрь 23, 2009, 16:25
Проблема оказалась проще: в программе перед полем типа int идёт поле типа time_t, которое, в зависимости от того, в каком порядке включены файлы SDK WinCE, становится 32 или 64-битным. :o
А this, в общем-то и не при чём. Если бы отладчик не показывал его внутри функции столь навязчиво, я бы о нём и не подумал... :)


Название: Re: Ошибка VC2008 в генерации кода для WinCE. Кто-нибудь сталкивался?
Отправлено: mad_celt от Сентябрь 24, 2009, 10:13
Прошу прощения за оффтоп, но... Я не могу сдержаться)
Вот!!! От отладчика одни беды!!!