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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
idealstudija
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
#1

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

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

Подскажите пожалуйста, вот я в интернете нашёл функцию написанную на 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);
  }
 }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2009, 13:17     Создание полноценного файла
Посмотрите здесь:

создание H-файла - C++
ктонить подскажить как создать этот файл или как настроить 3.1 borland c чето я высадился не помню...

Создание файла - C++
Нужно что бы пользователь вводил свой логин, и этот логин был названием файла.Внутри файла записываются пароль и количество денег набраных...

создание файла - C++
ребят не подскажите как создать(к примеру 50 файлов) и записать че-то в него. С созданием одного файла непроблема, а как сделать чтобы...

Создание файла - C++
Программа работает, только подскажите, как сделать так, чтобы файл закрывался, а программа нет, и что бы в дальнейшем эта программа могла...

Создание файла - C++
Подскажите пожалуйста, как в данной ситуации можно/нужно создать корректно файл. В книге написано про ошибку, якобы 4й бит сигнализирует...

Создание файла - C++
Я гляжу тут все интузиасты! Тогда такой вопрос: работал в техноре с С++ но не когда не доводилось работать с файлами! Но в данный...

Шифрование\создание файла - C++
Давно задаюсь вопросом , как программисты делают свое расширение файла(например file.xbd), и как они его кодируют,если кодируют вообще, при...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
12.01.2009, 13:23     Создание полноценного файла #2
В "него" ничего. Нужно создать проект, где собираешься ее юзать. Собственно, либо в хедер, либо где, добавить реализацию, написанную выше, юзать и компилить.
idealstudija
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.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
12.01.2009, 14:00     Создание полноценного файла #4
подключи
Код
#include <afxwin.h>
Добавлено через 5 минут 56 секунд
Цитата Сообщение от idealstudija Посмотреть сообщение
создал проект "Win 32 Console Application"
вроде здесь надо "MFC Application"
idealstudija
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.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
12.01.2009, 14:10     Создание полноценного файла #6
в строке 13 и 22 вот здесь
C++
1
 LPVOID)&rectWorkArea
нехватает скобки "(", сделай так
C++
1
 (LPVOID)&rectWorkArea,
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
12.01.2009, 14:10     Создание полноценного файла #7
Прикольно. То бишь, у тебя прога без главной функции?
idealstudija
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.

такой маленький файл и столько ошибок....
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
12.01.2009, 14:18     Создание полноценного файла #9
ты хоть главную функцию напиши....
idealstudija
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
12.01.2009, 14:26  [ТС]     Создание полноценного файла #10
Я на C++ вообще не умею программировать... мне просто срочно нужно это приложение...
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
12.01.2009, 14:28     Создание полноценного файла #11
Ясно...
idealstudija
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
12.01.2009, 23:37  [ТС]     Создание полноценного файла #12
Может хоть кто-нибудь знает как написать главную функцию для этого файла?
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 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"
idealstudija
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 16
13.01.2009, 16:35  [ТС]     Создание полноценного файла #14
ISergey огромное тебе спасибо. Может кто-нибудь знает как сделать чтобы этой панелью задач ещё нельзя было бы пользоваться при пощи клавиш Ctrl+Esc и т.д.?
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.01.2009, 16:46     Создание полноценного файла #15
Сделай хук на WM_HOTKEY и сам обрабатывай, как тебе хочется.

Добавлено через 5 минут 1 секунду
Хотя, это тебе мало поможет. Главное меню все равно можно будет вызвать, например через клавишу windows. И еще. То, что ты спрятал окошко лечится простым рестартом explorer.exe.
Но, если на все это пофигу, то ставь хук и забей.
idealstudija
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_)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2009, 01:49     Создание полноценного файла
Еще ссылки по теме:

fstream, создание файла - C++
Привет всем, не могу справиться с проблемой. fstream file(FILE,ios::in|ios::out|ios::binary); файл не создается, но если создать...

Создание бмп файла - C++
У меня есть массив 224x224 , и нужно массив записать в бмп файл (изображение черно-белое)

создание файла с информацией - C++
Тремя способами делаю данную прогу и никакой не дает нужного результата (хотя университетский учебник гласит обратное) так вот, надо...

Создание .ехе файла - C++
У меня установлена Borland Developer Studio Turbo C++. При создании программки, создается и .ехе файл. У меня на компе он запускается и...

Создание exe-файла - C++
что нужно указать в опциях проекта, чтобы прикомпилить vcl60?


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

Или воспользуйтесь поиском по форуму:
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.01.2009, 01:49     Создание полноценного файла #17
брр...на фиг тебе всякие afxwin??? если ты собираешься делать ччистое вин32-приложение? И вообще: http://www.cyberguru.ru/cpp-sources/...-wizardov.html
может, ты к нему и mfc прицепил? Это же вин32. Там это все не нужно.
Если память не изменяет, колбэк (обработчик) функция должна быть в длл-библиотеке.
NUL L); - это что?
Код
        if(a==0) return 0;   
        else a--;return 0;
зачем здесь два return? можно один убрать.
Код
while (1) {;}
эй, ау! 21-й век на дворе, какие бесконечные циклы? Есть нормальные методы для того, чтобы оставить прогу в памяти.
Yandex
Объявления
14.01.2009, 01:49     Создание полноценного файла
Ответ Создать тему
Опции темы

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