Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tommy
Сообщений: n/a
#1

Как мне вызвать GetGuiResources в консольном приложении VS6? - C++

03.06.2011, 14:51. Просмотров 806. Ответов 3
Метки нет (Все метки)

Приветствую!
Подскажите плиз, как мне вызвать GetGuiResources в консольном приложении VS6. Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <windows.h>
#include <winuser.h>
 
HWND hWnd;
DWORD dwProcID;
HANDLE hProcess;
DWORD dwGDI;
 
int main()
{
    hWnd = FindWindow('SciCalc', 'Calculator'); 
    GetWindowThreadProcessId(hWnd, &dwProcID);  
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcID);
    //TerminateProcess(hProcess, 0);
    
    dwGDI = GetGuiResources(hProcess, GR_GDIOBJECTS);
 
    return 1;
}
При компиляции я вижу сообщение warning C4013: 'GetGuiResources' undefined , хотя она описана в winuser.h
Что я упустил?

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2011, 14:51     Как мне вызвать GetGuiResources в консольном приложении VS6?
Посмотрите здесь:

C++ Как реализовать многопоточность в консольном приложении С++
Как в консольном приложении замутить сохренение? C++
C++ Как очистить экран в консольном приложении ?
C++ Вывод в консольном приложении
Как можно сделать что бы в консольном окне можно было вызвать контекстное меню как в win cmd? C++
C++ Как реализовать таймер в консольном приложении?
Тетрис в консольном приложении C++
Как в консольном приложении скрыть курсор мыши? C++
C++ Как сменить шрифт в консольном приложении?
C++ Как обрабатывать посылаемые виндовс сообщения, в консольном приложении?
CAsyncSocket в консольном приложении C++
Как использовать манипулятор flush в консольном приложении с++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kovalsky2
0 / 0 / 0
Регистрация: 05.08.2009
Сообщений: 96
04.06.2011, 02:30     Как мне вызвать GetGuiResources в консольном приложении VS6? #2
Предлагаю найти GetGuiResources в user32.dll:
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
#define GR_GDIOBJECTS     0 
#define GR_USEROBJECTS    1 
 
DWORD (*GetGui_Resources)(HANDLE hProcess,DWORD uiFlags);
HWND hWnd;
DWORD dwProcID;
HANDLE hProcess;
DWORD dwGDI;
 
int main()
{
 
    hWnd = FindWindow('SciCalc', 'Calculator'); 
 
    GetWindowThreadProcessId(hWnd, &dwProcID); 
 
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcID);
    
    HMODULE hLib=LoadLibrary('user32.dll');
    if (hLib)
    {
        GetGui_Resources=(DWORD (*)(HANDLE,DWORD))GetProcAddress(hLib,'GetGuiResources');
        if (GetGui_Resources)
        {
            dwGDI = GetGui_Resources(hProcess, GR_GDIOBJECTS);      
        }
        FreeLibrary(hLib);
    }
    return 1;
}
tommy
Сообщений: n/a
10.06.2011, 16:21     Как мне вызвать GetGuiResources в консольном приложении VS6? #3
Спасибо большое! С импортом функции из User32.dll всё работает замечательно. пришлось только подправить тип возвращаемого значения GetGuiResources, так что теперь код выглядит так:
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
#include <windows.h>
#include <winuser.h>
#include <stdio.h>
 
#define GR_GDIOBJECTS   0 
#define GR_USEROBJECTS  1 
 
typedef DWORD (CALLBACK* UTYPE)(HANDLE hProcess,DWORD uiFlags);
 
HWND hWnd;
DWORD dwProcID, dwGDI;
HANDLE hProcess;
HMODULE hLib;
UTYPE Get_Gui_Resources;
 
int main()
{
    hWnd = FindWindow('SciCalc', 'Calculator');     GetWindowThreadProcessId(hWnd, &dwProcID); 
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcID);
    
    hLib = LoadLibrary('C:\WINNT\System32\user32.dll');
    if (hLib)
    {
    
        Get_Gui_Resources = (UTYPE)GetProcAddress(hLib,'GetGuiResources');
        if (Get_Gui_Resources)
        {
            dwGDI = Get_Gui_Resources(hProcess, GR_GDIOBJECTS);
            printf('%i', dwGDI);
 
        }
        FreeLibrary(hLib);
    }
    return 1;
}
Kovalsky2
0 / 0 / 0
Регистрация: 05.08.2009
Сообщений: 96
13.06.2011, 02:35     Как мне вызвать GetGuiResources в консольном приложении VS6? #4
Всегда пожалуйста.
Yandex
Объявления
13.06.2011, 02:35     Как мне вызвать GetGuiResources в консольном приложении VS6?
Ответ Создать тему
Опции темы

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