Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
Уважаемые, подскажите пожалуйста, есть функции: void drawlist (??? //HDC){ // рисую } void drawUI(HDC *thdc){ // drawlist( ??? ); } функция drawUI принимает указатель на HDC. этот указатель передается как параметр для функции drawlist для доп. операций. Где знаки вопроса, я не знаю как это описать. Тоесть понятно, что на уровне drawUI я использую *thdc. Но как уйти глубже? Q_Q ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 14:31 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
Может я конечно тупой, но проблемы вообще не понимаю. Если так, не могли бы Вы более подробно сформулировать вопрос. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. функция drawUI принимает указатель на HDC. HDC и так хендл, почему бы просто его не передавать. Если ф-ция draw, его не меняют - указатель не нужен. Просто передавать HDC по значению. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 14:41 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
kridУважаемые, подскажите пожалуйста, есть функции: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. функция drawUI принимает указатель на HDC. этот указатель передается как параметр для функции drawlist для доп. операций. Где знаки вопроса, я не знаю как это описать. Тоесть понятно, что на уровне drawUI я использую *thdc. Но как уйти глубже? Q_Q Как я понял, krid спрашивает про абстрактный квалификатор, по которому любой взглянув на прототип функции понял бы, что: авторэтот указатель передается как параметр для функции drawlist для доп. операций. Некоторый аналог ISO/IEC 9899:201x7.24.2.3 The strcpy function Synopsis 1 Код: plaintext 1. 2. 3. Всем понятно откуда и куда идёт копирование, по квалификатору const. Если я не ошибаюсь, стандарт Си таких квалификаторов не предусматривает, и я не уверен что такие "пользовательские" квалификаторы есть в С++. Хотя возможно существует возможность их создать искусственно, но надеюсь что такой возможности нет. Это лишнее. Резюмируя: если я вас правильно понял, то используйте комментарии к функциям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 03:16 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
SSISO/IEC 9899:201x7.24.2.3 The strcpy function Synopsis 1 Код: plaintext 1. 2. 3. Всем понятно откуда и куда идёт копирование, по квалификатору const. И всем понятно, что s1 не должен пересекаться с s2 по квалификатору restrict. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 03:27 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
Ребята, прошу прощения, если описал задачу не верно. Дело в том, что я только учу этот язык и поэтому могу не верно истолковать нужное. В любом случае, попробую иначе: Есть обработка сообщения. Из нее вызывается ф-ция PaintUI с указателем на tempDC. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Далее в PaintUI я вызываю другую ф-цию, которая рисует список объектов, где вместо вопросов (???) должно быть что-то, что помогло бы мне использовать тот же tempDC из обработки сообщения WM_PAINT. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 08:14 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
у вас либо слишком очевидный вопрос, по типу f1 принимает x, f1 вызывает в себе f2, как сделать чтобы f2 принимало этот-же x. Код: plaintext 1. 2. 3. 4. , либо я вас вновь не понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 10:23 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
Когда только учат математику, то не начинают с двойных интегралов и пространств Соболева. Си в программировании так-же фундаментален и важен как математика в науке(чуть меньше конечно, но всё же). Так что начините с чего-нибудь более простого для изучения. Начните читать стандарт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 10:26 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
SashaMercury Как я понял, krid спрашивает про абстрактный квалификатор, по которому любой взглянув на прототип функции понял бы, что: авторэтот указатель передается как параметр для функции drawlist для доп. операций. Характер семантики операций с операндом-параметром функции не может быть в языках C и C++ вырожен на уровне языка никакими способами. В смысле -- дополнительные это операции, или основные. По семантике данного типа -- HDC -- даже "дополнительные" операции с ним будут не CONST, да и в WinAPI квалификаторы CONST не применяются. Комментарии конечно же можно применять для этого. Также можно применять пустые (псевдо)квалификаторы, выполненные в виде пустых макроопределений (нефункциональных). Код: plaintext 1. 2. 3. 4. В данном конкретном случае к параметру HDC это всё неприменимо, ввиду его особой семантики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 11:11 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
kridДалее в PaintUI я вызываю другую ф-цию, которая рисует список объектов, где вместо вопросов (???) должно быть что-то, что помогло бы мне использовать тот же tempDC из обработки сообщения WM_PAINT. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Достаточно просто передать HDC как параметр. Передаваться он должен по значению, поскольку внутри функции сам HDC не меняется. std::vector<std::string> следует передавать по константной ссылке, а не по указателю. Причина -- функция drawList, очевидно, не может работать при zdata == NULL, её вызов в этом случае бессмысленен. Поэтому нужно передавать именно как константную ссылку -- её нельзя задать NULL, она всегда должна быть. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 11:16 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Благодарю. Исправил код. Всё вполне работает. Если есть возможность и желаение, посоветуйте книги именно на эту тему. Указатели, WINAPI и "правильный код". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 12:34 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
SashaMercuryКогда только учат математику, то не начинают с двойных интегралов и пространств Соболева. Си в программировании так-же фундаментален и важен как математика в науке(чуть меньше конечно, но всё же). Так что начините с чего-нибудь более простого для изучения. Начните читать стандарт. Чтение стандарта - не самый лучший старт для изучения. Кроме того стандарт языка не покрывает библиотек GDI графики о которых и спрашивает автор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 12:46 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
kridпосоветуйте книги именно на эту тему. Указатели, WINAPI и "правильный код". Это -- три разные книги. WINAPI - Фроловы. Старая книжка. "правильный код" -- McConnel, но я бы не советовал бросаться её читать. Указатели -- достаточно любого стандартного учебника по С. Прата, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 14:30 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
maytonSashaMercury Начните читать стандарт. Чтение стандарта - не самый лучший старт для изучения. Я бы сказал -- худший. Можно читать тогда уж книги, подобные этой Код: plaintext 1. 2. 3. если так на стандарты тянет. А лучше всего читать УЧЕБНИКИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 14:34 |
|
||
|
Сквозной указатель?
|
|||
|---|---|---|---|
|
#18+
SashaMercuryТак что начините с чего-нибудь более простого для изучения. Начните читать стандарт.Стандарт пишется чётким, сухим языком. Для людей, которые его (стандарт) и так знают. Начинать надо с учебников, которые: 1. Излагают не весь стандарт, а наиболее употребительные его части; 2. Излагают материал более "человечно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 20:36 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38712764&tid=2019345]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 158ms |

| 0 / 0 |
