Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 175
от 15.08.2005, 16:44

Администратор:Калашников О.А.
В рассылке:Подписчиков: 189, Экспертов: 28
В номере:Вопросов: 3, Ответов: 5


Вопрос № 24672: Здравствуйте эксперты! Какое сообщение отправляет Windows процессам перед выключением компьютера? Спасибо!...
Вопрос № 24683: Здравствуйте, уважаемые эксперты. У меня вот появилась проблемка: Есть класс ECube , я определяю ECube MainCube; ,потом я в одной функции запускаю Zagon(&MainCube); Zagon имеет такой вид: void C3dsLoader::...
Вопрос № 24694: Уважаемые эксперты можно ли передать массив из функции в основную функцию main() в программе на С. Как передавать в функцию массив -- через указатель, а вот как обратно получить? Если можно привести часть кода. Спасибо....

Вопрос № 24.672
Здравствуйте эксперты!
Какое сообщение отправляет Windows процессам перед выключением компьютера?
Спасибо!
Отправлен: 09.08.2005, 19:04
Вопрос задал: Azat (статус: 4-ый класс)
Всего ответов: 2
Мини-форум вопроса >>>

Отвечает: Ерёмин Андрей
Здравствуйте, Azat!
Windows отправляет сообщение WM_QUERYENDSESSION. Однако отправляется оно не только при выключении компьютера, но и при перезагрузке, а также выходе из системы.

--
С уважением,
Андрей.

---------
Если б не было бы глюка, жизнь была б такая скyка...
Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 09.08.2005, 19:49
Оценка за ответ: 5

Отвечает: Rusland
Здравствуйте, Azat!
Процессам WM_QUERYENDSESSION, окнам WM_CLOSE. Удачи.
---------
Тише едешь, дальше будешь... от того места куда едешь
Ответ отправил: Rusland (статус: Студент)
Отправлен: 10.08.2005, 10:03
Оценка за ответ: 5


Вопрос № 24.683
Здравствуйте, уважаемые эксперты. У меня вот появилась проблемка:

Есть класс ECube

, я определяю ECube MainCube;

,потом я в одной функции запускаю Zagon(&MainCube);

Zagon имеет такой вид:

void C3dsLoader::Zagon(ECube *TCube)
{
*TCube.fc = 5
};
так вот, в функции Zagon оно генерит еррор на тему

left of '.fc' must have class/struct/union type

Подскажите, плиз, что я делаю не так, и покажите как надо делать
Отправлен: 09.08.2005, 21:54
Вопрос задал: ANDx (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>>

Отвечает: Raptor1
Здравствуйте, ANDx!
или так
void C3dsLoader::Zagon(ECube *TCube)
{
(*TCube).fc = 5
};
или так

void C3dsLoader::Zagon(ECube *TCube)
{
TCube->fc = 5
};
Ответ отправил: Raptor1 (статус: 5-ый класс)
Отправлен: 10.08.2005, 00:00
Оценка за ответ: 5
Комментарий оценки:
ОГРОМНЫЙ СЕНКС, глюк пропал!


Вопрос № 24.694
Уважаемые эксперты можно ли передать массив из функции в основную функцию main() в программе на С. Как передавать в функцию массив -- через указатель, а вот как обратно получить? Если можно привести часть кода. Спасибо.
Отправлен: 10.08.2005, 08:34
Вопрос задал: Шаптала Максим (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>>

Отвечает: Azat
Здравствуйте, Шаптала Максим!
Не знаю как передать массив из подпрограммы в main().
Но можно объявить массив в main и передать подпрограмме. Подпрограмма изменит массив...закончит работу. А в main будет измененный массив. См. приложение.
Удачи!

Приложение:

Ответ отправил: Azat (статус: 4-ый класс)
Отправлен: 10.08.2005, 11:43

Отвечает: Raptor1
Здравствуйте, Шаптала Максим!
Если ты передаешь в функцию массив через указатель то его не надо возвращать так как ты изменяешь элементы именно первоначального масива в не копии, но при желании можешь возвратить тоже через указатель.
DWORD dwData[10];
MakeNull(dwData,10);

void MakeNull(DWORD *pdwData,DWORD dwSize)
{
for(DWORD i=0;i<dwSize;i++)
pdwData[i]=0;
}
если же твоей функции может осуществляться к примеру перевыделение памяти под массив, то нужно использовать двойной указатель

можно так
DWORD pdwData=new DWORD[10];
MakeNull(pdwData,10);
Realloc(&pdwData,12);
void Realloc(DWORD **ppdwData, DWORD dwSize)
{
delete [] *ppdwData;
*ppdwData=new DWORD[dwSize];
}

или так
DWORD pdwData=new DWORD[10];
MakeNull(pdwData,10);
pdwData=Realloc(pdwData,12);
DWORD* Realloc(DWORD *pdwData, DWORD dwSize)
{
delete [] pdwData;
return new DWORD[dwSize];
}
Ответ отправил: Raptor1 (статус: 5-ый класс)
Отправлен: 10.08.2005, 23:39


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное