Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 16:01   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Размер структуры имеет значение?

Вопрос скорее общий, чем относящий именно к языку C. Тут я написал структуру:
Код:
	typedef struct tagTREENODE
	{
		bool MainRoot;
		unsigned long PNumber;
		LPWSTR Sender;	
		LPWSTR Client;
		unsigned char Rank;
		WCHAR* Name;
		LPWSTR TTCountry;
		LPWSTR TBrand;	
		LPWSTR TModel;
		LPWSTR TTSN;
		LPWSTR TTSZZ1SN;
		unsigned char TTSZZ2Count;
		LPWSTR TTImgRef;
	} TREENODE, *LPTREENODE;
Всякий раз при нажатии на кнопку я выделяю память по эту структуру с помощью new. За тем мне нужно в параметр переменной, который(параметр) имеет тип LPARAM записать указатель на жту структуру. Посмотрел в msdn и понял, что LPARAM вроде бы может быть либо 32-х битное число, либо 64-х. Сделал так:
Код:
	x.lParam = (LPARAM)pTreeNode;
потом так:
	x.lParam = (long или int или char)pTreeNode;      
ошибки не возникло
Но программа косячит... а именно: при возвращении lParam и конвертации его в тип LPTREENODE. Некоторые поля, которые имеют переменные-указатели выдают не те результаты. Я подозреваю, что дело в размере структуры, ведь моя структура имеет размер больше 32-х бит и получается, что при конвертации могут получаться одни и теже числа. Или я не прав? А может быть конвертируется именно адрес в long? Тогда проблема в другом. Подскажите пожалуйста.
P.S. Прошу прощения, я как всегда в своём стиле: спрашиваю, а через 5 минут решаю сам.
Дело было в том, что я создал указатель в классе и в функции и менял содержимое казателя не функционального а глобального, а он указывает на только что созданные объект, но теперь я и его локализовал и убрал из класса.
Всем спасибо)))
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 04.06.2011 в 16:10.
ImmortalAlexSan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив имеет тип float, переменная же, куда записывается значение int. Sabin4ik Общие вопросы C/C++ 1 28.04.2011 21:47
Вставка в функцию значение из структуры iSky Общие вопросы C/C++ 7 24.10.2010 00:57
Когда време имеет значение Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 3 22.01.2009 02:21
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54
Размер имеет значение Xenofibrius Общие вопросы Delphi 3 20.04.2008 23:38