Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 6
1

Код не выполняется в одном месте, но выполняется в другом

30.12.2012, 17:04. Просмотров 608. Ответов 2
Метки нет (Все метки)


Вот код процедуры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    static LARGE_INTEGER pli;
    static LPDWORD drd;
 
    
    static HANDLE fl = CreateFile(L"qs.txt",GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); 
    static char bf[4000];
    char szBuffer[40];
 
    static int pos = -1; // символ не найден
 
    switch (message)
    {
    case WM_CREATE:
        GetFileSizeEx(fl, &pli);
        ReadFile(fl, &bf, 100, drd, 0);
        
            
        for ( int i = 0; i < pli.QuadPart; i++ )
        if ( bf[i] == 'И' )
        {
            pos = i;
            break;
        }
        
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        TextOutA(hdc, 20, 20, /*bf,pli.QuadPart);*/ szBuffer,wsprintfA(szBuffer, "%d", pos));
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
Фрагмент
C++
1
2
3
4
5
6
for ( int i = 0; i < pli.QuadPart; i++ )
        if ( bf[i] == 'И' )
        {
            pos = i;
            break;
        }
Выполняется в событии WM_PAINT, но не выполняется в WM_CREATE. Почему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2012, 17:04
Ответы с готовыми решениями:

Узнать в каком месте выполняется код
Возможно ли как-то узнать, где конкретно в данный момент висит программа? Точка останова не...

Сформировать DropDownList, одинаковый код в одном месте работает в другом нет
Есть следующие модели public class Fpsu { public int id { get; set; } ...

Распараллеливание: код выполняется еще медленнее чем в одном главном потоке
Здравствуйте! Хочу сделать распараллеливание участка кода, а именно этого: ...

Набор текст в одном месте, аналогичный тест появлялся бы в другом месте. Word 2016
Нужно чтобы при наборе текста в одном месте аналогичный тест появлялся бы в другом месте в ворде...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
2
4030 / 2320 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
30.12.2012, 17:54 2
breakpoints ставил, проверял?
0
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
30.12.2012, 19:09 3
Цитата Сообщение от vlad892 Посмотреть сообщение
но не выполняется в WM_CREATE.
А уверены, что не выполняется?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2012, 19:09

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Выполняется ли Invoke в другом потоке?
Здравствуйте, при многопоточности thread, когда выполняешь Invoke, Invoke выполняется в отдельном...

Феномен в одном месте в другом нет
В комментариях все написано запустите прогу и увидете. Почему так? И как исправить? #include...

Проект выполняется на Windows 8, но не выполняется на виртуальной машине
У меня есть проект, собранный в релиз, в котором осуществляется внедрение своей dll в память чужих...

Почему в одном месте работает, а в другом нет?
Доброго времени суток. Почему один код работает, а в другом сыпятся ошибки? Как бы смысл кода по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.