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

MessageBox - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запись и чтение файлов на диск и с диска http://www.cyberforum.ru/cpp-beginners/thread346857.html
Добрый день,помогите пожалуйста составить две программы. 1)Создать файл с полями:Фамилия,№ экзаменационного билета,зачет\незачет. 2)Считывание данных из файла и вывод на экран в виде таблицы,затем...
C++ сконструировать класс Добрый день. Мне надо сконструировать следующий класс: class LogicElement { public: // constructors / destructor LogicElement(const char *ElementType, int nIpiNmb ); LogicElement(const... http://www.cyberforum.ru/cpp-beginners/thread346844.html
C++ Проблема наследования от шаблонного класса.
Привет всем! У меня есть шаблонный класс, и наследуемый от него шаблонный класс. Базовый: #include "Lgraph.h" #include "Mgraph.h" template <class Edge>
Число прописью, от 1 до 99 на русском C++
Программа работает, но не совсем правильно, отлично выводит числа от 1 до 20 потом при вводе 21 - выводит один один; 47 - выводит семь семь; 83 - выводит три три. Помогите исправить ошибку. ...
C++ Как правильно записать? http://www.cyberforum.ru/cpp-beginners/thread346740.html
y=sin|x|/0,1+9,4sin(3x-2,5) Добавлено через 13 минут матем. формулу
C++ Подскажите Вот начал изучать с++ с 0. Столкнулся с проблемой уже в самом начале...подскажите плиз что не так... #include <iostream.h> class DataClass { private : int PrivateDataMember; public : подробнее

Показать сообщение отдельно
kravam
быдлокодер
1697 / 884 / 45
Регистрация: 04.06.2008
Сообщений: 5,484
01.09.2011, 01:00
Хм. Интересно. Очень интересно.
А что, никто не знает, что в настройках IDE есть пункт типа "компоновщик-> не создавать консольное окно"? В DEV C++ есть точно.

........................................................................................................................ .

ТС, чтобы создавать или не создавать консольное окно, для этого в файловом заголовке надо поправить всего одно поле, Subsystem
Хочешь правь вручную, в hex-редактое
...Вот так оно правится программно, запускаешь прогу, вводишь имя экзешника и нужное значение поля; после чего консольное окно либо создаётся либо нет. Подробности смотри в "формат PE- файлов"

Код неаккуратный даже для меня ну да я давно-давно писал подобное а щас на скорую руку переделал, дабы только лишь сохранить функционал.
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <windows.H>
#include <stdio.H>
#define NTSIGNATURE(a) ((LPVOID)((BYTE *)a + ((PIMAGE_DOS_HEADER)a)->e_lfanew))
typedef IMAGE_OPTIONAL_HEADER OptionalHeader; 
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Эта функция будет находить нам размер файла и его возвращать. 
long int razmer_faila (char* falis_name) {
 
 long int Razmer_Faila;
 HANDLE hFile;
 
 hFile = CreateFile(falis_name,
                       0,
                     FILE_SHARE_READ, 
                     NULL,
                     OPEN_EXISTING, 
                     FILE_ATTRIBUTE_NORMAL, 
                     NULL);
 
 //Проверяем, нормалено файл открыт или нет
 if (hFile== INVALID_HANDLE_VALUE) {
  return 0;
 }
 Razmer_Faila= (long int)GetFileSize(hFile, 0);
 CloseHandle (hFile);
 return Razmer_Faila; 
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
 
int main () {
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
                                //+ + +
 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!перегоняем файл в строку!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 char falis_name [MAX_PATH];
 long int Razmer_Faila;
 
 
 //Первое, что сделааем, это введём имя файла, который будем перегонять в строку:
 //Ввод имени файла:
 printf ("Вводи имя экзешника\n");
 if (!gets (falis_name)) {
  printf ("проблема с вводом имени экзешника\n");
  system ("pause");
  return 0;   
 }       
 
 //Теперь находим размер файла
 if (!(Razmer_Faila= razmer_faila (falis_name))) {
  printf ("не получилось найти размер экзешника\n");
  system ("pause");
  return 0;
 }
 
 
 //Теперь открываем файл на чтение
 FILE* f;
 if (!(f= fopen (falis_name, "rb"))) {
  printf ("экзешник на чтение не открыт\n");
  system ("pause");
  return 0; 
 }  
 
 //Теперь переписываем файл в строку нужного размера. ДЛя этого такую строку надо выделить
 //unsigned char* stroka_dla_faila= new unsigned char [Razmer_Faila+ 1]; 
 unsigned char* stroka_dla_faila= new unsigned char [Razmer_Faila]; 
 
 
 //И собсно запись файла в эту строку
 if (fread (stroka_dla_faila, 1, Razmer_Faila, f)<Razmer_Faila) {
  printf ("не удалось считать экзешник в строку\n");
  system ("pause");
  return 0;
 }
 
 fclose (f);
 
 
 //Потом не забыть вернуть память оси с помощью delete 
 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!конец перегоняем файл в строку!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 
PIMAGE_NT_HEADERS pPE=(PIMAGE_NT_HEADERS)NTSIGNATURE((long)stroka_dla_faila);
 
 
printf ("Теперь вводи число 2 или 3,если введёшь 2, то консоли создаваться не будет,\
 а если 3, то будет\n");
 
scanf ("%d",&(pPE->OptionalHeader.Subsystem));
 
//Перегоним строку в файл
if (!(f= fopen (falis_name, "wb"))) {
 printf ("файл на запись не открыт\n");
 system ("pause");
 return 0; 
}  
 
fwrite (stroka_dla_faila, 1, Razmer_Faila, f); 
delete [] stroka_dla_faila;
fclose (f);
getchar ();
 return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru