Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/10: Рейтинг темы: голосов - 10, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
1

Создание полноценного файла

12.01.2009, 13:17. Показов 2050. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, вот я в интернете нашёл функцию написанную на C++, что в него надо дополнить что бы в далнейшем его компилировать в Visual C++ 6 и создать рабочее приложение?

Заранее благодарю...

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
43
44
45
46
47
void gShowHideTaskBar(BOOL bHide /*=FALSE*/)
{
 CRect rectWorkArea = CRect(0,0,0,0);
 CRect rectTaskBar = CRect(0,0,0,0);
 
 CWnd* pWnd = CWnd::FindWindow("Shell_TrayWnd", "");
 
 if( bHide )
 {
  // Скрываем панель задач
  SystemParametersInfo(SPI_GETWORKAREA,
                       0,
                       LPVOID)&rectWorkArea,
                       0);
 
  if( pWnd )
  {
   pWnd->GetWindowRect(rectTaskBar);
   rectWorkArea.bottom += rectTaskBar.Height();
   SystemParametersInfo(SPI_SETWORKAREA,
                        0,
                        LPVOID)&rectWorkArea,
                        0);
 
   pWnd->ShowWindow(SW_HIDE);
  }
 }
 else
 {
  // Показываем панель задач
  SystemParametersInfo(SPI_GETWORKAREA,
                       0,
                       (LPVOID)&rectWorkArea,
                       0);
  if( pWnd )
  {
   pWnd->GetWindowRect(rectTaskBar);
   rectWorkArea.bottom -= rectTaskBar.Height();
   SystemParametersInfo(SPI_SETWORKAREA,
                        0,
                        (LPVOID)&rectWorkArea,
                        0);
 
   pWnd->ShowWindow(SW_SHOW);
  }
 }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2009, 13:17
Ответы с готовыми решениями:

Создание файла. Перезапись информации с одного файла в другой. Ошибки
Здравствуйте! Помогите пожалуйста. Поставлена задача: создать файл из 55 целых чисел, используя...

Создать программу, реализующую: создание файла, просмотр файла, поиск по файлу, выход
Создать программу, которая может осуществлять такие действия(меня программы): создание файла,...

Создание файла .h и файла .cpp
Написать программу, которая состоит из следующих действий: 1. Создание заголовочного файла (с...

Создание полноценного словаря
Всем привет. Нужны советы. Посоветуйте чем можете, пожалуйста))) Думаю написать словарь на...

16
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.01.2009, 13:23 2
В "него" ничего. Нужно создать проект, где собираешься ее юзать. Собственно, либо в хедер, либо где, добавить реализацию, написанную выше, юзать и компилить.
0
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
12.01.2009, 13:50  [ТС] 3
Ну вот я в Visual C++ создал проект "Win 32 Console Application", затем создал в проекте Source File в формате .cpp и в нём написал этот код. Нажимаю Compile. Следующие ошибки...

C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(1) : error C2065: 'BOOL' : undeclared identifier
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(1) : error C2146: syntax error : missing ')' before identifier 'bHide'
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(1) : error C2182: 'gShowHideTaskBar' : illegal use of type 'void'
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(1) : error C2059: syntax error : ')'
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(2) : error C2143: syntax error : missing ';' before '{'
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(2) : error C2447: missing function header (old-style formal list?)
Error executing cl.exe.
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
12.01.2009, 14:00 4
подключи
Код
#include <afxwin.h>
Добавлено через 5 минут 56 секунд
Цитата Сообщение от idealstudija Посмотреть сообщение
создал проект "Win 32 Console Application"
вроде здесь надо "MFC Application"
1
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
12.01.2009, 14:04  [ТС] 5
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(16) : error C2275: 'LPVOID' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(158) : see declaration of 'LPVOID'
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(17) : error C2059: syntax error : ')'
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(25) : error C2275: 'LPVOID' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(158) : see declaration of 'LPVOID'
C:\Documents and Settings\Alex\Рабочий стол\1\dr.cpp(26) : error C2059: syntax error : ')'
Error executing cl.exe.
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
12.01.2009, 14:10 6
в строке 13 и 22 вот здесь
C++
1
 LPVOID)&rectWorkArea
нехватает скобки "(", сделай так
C++
1
 (LPVOID)&rectWorkArea,
1
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.01.2009, 14:10 7
Прикольно. То бишь, у тебя прога без главной функции?
0
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
12.01.2009, 14:17  [ТС] 8
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/safgdhfg.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

такой маленький файл и столько ошибок....
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.01.2009, 14:18 9
ты хоть главную функцию напиши....
0
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
12.01.2009, 14:26  [ТС] 10
Я на C++ вообще не умею программировать... мне просто срочно нужно это приложение...
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.01.2009, 14:28 11
Ясно...
0
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
12.01.2009, 23:37  [ТС] 12
Может хоть кто-нибудь знает как написать главную функцию для этого файла?
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
13.01.2009, 00:32 13
шо то вроде
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <afxwin.h>
 
void gShowHideTaskBar(BOOL bHide /*=FALSE*/)   
{   
 CRect rectWorkArea = CRect(0,0,0,0);   
 CRect rectTaskBar = CRect(0,0,0,0);   
  
 CWnd* pWnd = CWnd::FindWindow(_T("Shell_TrayWnd"), _T(""));   
  
 if( bHide )   
 {   
  // Скрываем панель задач   
  SystemParametersInfo(SPI_GETWORKAREA,   
                       0,   
                       (LPVOID)&rectWorkArea,   
                       0);   
  
  if( pWnd )   
  {   
   pWnd->GetWindowRect(rectTaskBar);   
   rectWorkArea.bottom += rectTaskBar.Height();   
   SystemParametersInfo(SPI_SETWORKAREA,   
                        0,   
                        (LPVOID)&rectWorkArea,   
                        0);   
  
   pWnd->ShowWindow(SW_HIDE);   
  }   
 }   
 else   
 {   
  // Показываем панель задач   
  SystemParametersInfo(SPI_GETWORKAREA,   
                       0,   
                       (LPVOID)&rectWorkArea,   
                       0);   
  if( pWnd )   
  {   
   pWnd->GetWindowRect(rectTaskBar);   
   rectWorkArea.bottom -= rectTaskBar.Height();   
   SystemParametersInfo(SPI_SETWORKAREA,   
                        0,   
                        (LPVOID)&rectWorkArea,   
                        0);   
  
   pWnd->ShowWindow(SW_SHOW);   
  }   
 }   
}
 
int main()
{
    //gShowHideTaskBar(false);//показать трей
              gShowHideTaskBar(true);//спрятать трей
    return 0;
}
если у тебя "Console application" то в поле "Use of MFC" нужно поставить -> "Use MFC in a Shared DLL"
1
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
13.01.2009, 16:35  [ТС] 14
ISergey огромное тебе спасибо. Может кто-нибудь знает как сделать чтобы этой панелью задач ещё нельзя было бы пользоваться при пощи клавиш Ctrl+Esc и т.д.?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
13.01.2009, 16:46 15
Сделай хук на WM_HOTKEY и сам обрабатывай, как тебе хочется.

Добавлено через 5 минут 1 секунду
Хотя, это тебе мало поможет. Главное меню все равно можно будет вызвать, например через клавишу windows. И еще. То, что ты спрятал окошко лечится простым рестартом explorer.exe.
Но, если на все это пофигу, то ставь хук и забей.
0
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
14.01.2009, 01:03  [ТС] 16
Вот пытаюсь сделать хук на клавиатуру выдаёт такие ошибки. В чём может быть проблема? Может какую-нибудь библиотеку забыл добавить?

Ошибки:
Compiling...
keyhook.cpp
Linking...
MSVCRTD.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
Debug/keyhook.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

keyhook.cpp

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// 1.cpp : Defines the entry point for the application. 
// 
 
#include "stdafx.h"
#include <afxwin.h>  
 
//глобальные переменные 
int mykey(WPARAM,LPARAM);    // объявление процедуры 
int a=0;                                           // счетчик символов 
char String[256];                               // буфер для строки 
 
LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam) 
{ 
 if(lParam>0x8000){ mykey(wParam,lParam);} 
 // обрабатываем только когда клавиша нажата (типа WM_KEYDOWN) 
 
 return 0; 
} 
 
int mykey(WPARAM wPararam, LPARAM lPararam) 
{ 
  
 
UINT uScanCode = MapVirtualKey(wPararam,0);   // scan code 
BYTE KeyState[256];                                              // key-state array 
WORD BufChar;                                                    // buffer for translated key 
UINT uFlags=0;                                                       // якобы ?меню? не активно 
 
GetKeyboardState(KeyState); // заносим состояние всех клавиш 
 
if(ToAscii(wPararam,uScanCode,KeyState,&BufChar,uFlags)==1) 
// исходя из кода VirtualKey и состояния всех клавиш определяем 
// какой символ будет отображаться на экране. 
 
{ 
    if (char(BufChar)==8 ) // если нажат BACKSPACE идем назад по буферу 
     { 
       if(a==0) return 0; 
       else a--;return 0; 
      } 
if(a>40) MessageBox(NULL,String,"hehe",0); 
// если было введено больше 40 символов выводим на экран сесь буфер. 
  String[a]=char(BufChar);a++;// заносим символ в буфер 
  MessageBeep(0xffffffff);// выдаем звук 
 
} 
 
 return 0; 
} 
 
int APIENTRY WinMain(HINSTANCE hInstance, 
                     HINSTANCE hPrevInstance, 
                     LPSTR     lpCmdLine, 
                     int       nCmdShow) 
{ 
 
SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,NULL); 
//устанавливаем перехватчик для Клавишных событий 
 
while (1) {;} 
// бесконечный цикл программу можно выгрузить только через диспетчер 
// задач (Ctrl+Alt+Del) 
return 0; 
}
StdAfx.cpp

C++
1
2
3
4
5
6
7
8
// stdafx.cpp : source file that includes just the standard includes
//  keyhook.pch will be the pre-compiled header
//  stdafx.obj will contain the pre-compiled type information
 
#include "stdafx.h"
 
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
StdAfx.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//
 
#if !defined(AFX_STDAFX_H__B320FA7A_EC1E_4187_AB4C_B8FBC7FEF00C__INCLUDED_)
#define AFX_STDAFX_H__B320FA7A_EC1E_4187_AB4C_B8FBC7FEF00C__INCLUDED_
 
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
 
 
// TODO: reference additional headers your program requires here
 
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
 
#endif // !defined(AFX_STDAFX_H__B320FA7A_EC1E_4187_AB4C_B8FBC7FEF00C__INCLUDED_)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
14.01.2009, 01:49 17
брр...на фиг тебе всякие afxwin??? если ты собираешься делать ччистое вин32-приложение? И вообще: http://www.cyberguru.ru/cpp-so... ardov.html
может, ты к нему и mfc прицепил? Это же вин32. Там это все не нужно.
Если память не изменяет, колбэк (обработчик) функция должна быть в длл-библиотеке.
NUL L); - это что?
Код
        if(a==0) return 0;   
        else a--;return 0;
зачем здесь два return? можно один убрать.
Код
while (1) {;}
эй, ау! 21-й век на дворе, какие бесконечные циклы? Есть нормальные методы для того, чтобы оставить прогу в памяти.
0
14.01.2009, 01:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2009, 01:49
Помогаю со студенческими работами здесь

Создание полноценного интернета
Товарищи помогите пожалуйста. В сетевый делах не рублю вообще практически. Хочу организовать сеть...

Создание полноценного НЕ ЛОКАЛЬНОГО WEB-сервера
Доброго времени суток! :) Сижу и перебираю статьи по созданию нормальных &quot;WEB-серверов&quot; (кто-то...

Создание полноценного ярлыка программы по указанному пути
Всем привет! Столкнулся с проблемой и не знаю как решить. Короче мне нужно создать ярлык для...

Сборка полноценного приложения
Пользуюсь IDE Eclipse там все собирается и работает прописаны нужные библиотеки и etc. По дефолту...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru