775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
1

Не понятное в языке программирования С

19.07.2016, 11:44. Показов 672. Ответов 5
Метки с89 (Все метки)

Author24 — интернет-сервис помощи студентам
Собрал разные свои вопросы касательно языка программирования С. Если не трудно - просьба объяснить:

1. как в С создать массив строк? Вот такой код не проходит компиляцию

C
1
2
3
4
5
6
7
8
unsigned char str_array[50][50];
 
str_array[0][50] = "First string";
str_array[1][50] = "Second string";
.
.
.
str_array[49][50] = "Final string";
почему он не работает?

2. Часто при запуске скомпилированных программ с С с помощью компилятора tcc через 2-3 сек. в ОС windows7 появляется окошко с ошибкой "Обнаружена ошибка! Приложение будет закрыто. Приносим извинения за неудобства" то есть обычный отчет о ошибке в программе. Что это такое, и, как этого избежать? Почему появляются такие сообщения?

3. Можно как то по-подробнее объяснить как работают приложения на языке С в среде операционной системы? В виде любых UML диаграмм либо чего угодно. Приложение работает так что имеет доступ только к функциям winapi и все? С драйверами общается посредством встроенного установленного драйвера? Не могу понять именно как устроенна операционная ситстема и не знаю как в этом всем разобраться. Целые тома посвященные ОС в 800 страниц читать не хочется. Можно как то самому в это въехать?

4. Как пользоваться встроенным ассемблером в коде С? Где можно описание этого стандарта? Почему в асемблерных вставках в коде не работают команды IN, OUT для работы с портами ввода вывода? Хотел помигать светодиодами клавиатуры с программы на С но не получилось, что-то вообще ноль реакции. Здесь говорят что программа работает в защищенном режиме, и углубится к оборудованию не получится, да? Есть разные уровни привилегий в операционной системе, в процессоре, какие то "кольца" возможностей.

5. Верно ли сказать что компилятор языка С (здесь имеется ввиду - tcc) использует функции операционной системы для реализации таких математических функций как pow, sin, cos, и т.д.? То есть в нем реализовано это все независимо от операционной системы, автономно? Либо, компилятор как то использует то что содержится в операционной системе? То что создано корпорацией microsoft Интересно узнать то же самое но о linux. Короче с пониманием операционной системы полная тьма - ничего понять не могу. Можно разобраться в устройстве как то, по-быстрому и эффективно? Спасибо!

6. Пытался просмотреть скомпилированный код С компилятором tcc в дизасемблере ollydbg, специально там в исходнике добавлял данные в виде строк, но однако которые в hex дампе кода программы вообще не нашел! Почему так происходит? Куда деваются данные с программы? Они там должны содержатся а их нет.

7. Есть ли специально созданные для языков С/С++ библиотеки реализующие работу с массивами? Удобный инструмент работы с массивами: сортировка разная и прочее. Не называться ли эта библиотека случайно C arrays?

8. Как можно поэкспериментировать и пообщаться с оборудованием напрямую с программы на С? С любым оборудованием: принтер, сканнер, радиомодем, компьютерная мышь, экран, жесткий диск, карта памяти - любое оборудование. Жаль, конечно, что мало кто с изготовителей оборудования не публикует в интернете информацию о том как с ним работать, документацию, дата-шиты или как там их называют. Как же тогда быть?

9. Простенький вопрос. Как проще всего задать иконке скомпилированной программе на С свой любой значек? Как установить для значка программы иконку любую?

10. Простенький вопрос. Что такое библиотка *.dll? Как их создавать в компиляторе? Можно ли просмотреть как они работают в дизассемблере? После установки программы в её каталоге в Program Files появлется куча *.dll файлов, не понятно что это и как это создается и работает.

11. Простенький вопрос. Как кучу файлов программы объединить в одном значке? Что бы было не много файлов а одна программа, один значек и все. Может быть вопросы 9-10 слишком тупые, ссори.

12. Можно где то найти полный справочник по winapi на русском в формате chm? Что бы самый-самый полный, со всем необходимым. А то совсем не понятно как создавать окна, кнопки, выпадающие списки, радио кнопки, диалоговые окна и все остальное. Хорошо какие то примеры если бы были. Да и не понятно под какой язык программирования идет этот справочник по winapi. Он один для всех языков программирования?

13. Как создавать не стандартные окна windows через использование winapi а свои собственные стилизованные? Часто в программах не стандартный winapi оконный интерфейс а свой оригинальный красиво нарисованный, как это все создается?

14. Где можно найти мировой C-сборник библиотек работы со всем-всем-всем: декодеры/кодеры видео и звука, работы с изображениями, для создания 3D моделей, шифрования информации, алгоритмы расчета контрольных сумм и прочего? Есть в интернете какой то большой грамотный сборник таких функций на языке С?

15. Как в программе на С реализовать вычислительную много поточность?

16. Как в программе на С реализовать сетевую много поточность?

17. Как в ассемблерных вставках на ассемблере работать с много ядерными процессорами? Просто распаралелить задачу на два ядра? Так это реализуется?

18. Как можно реализовать ф-ю eval в программе на С? То есть создаешь строку обычную а она работает как программа: обычная строка данных превращается в программу.

19. Очень хочется получить ответ на этот вопрос. Как менять видео режимы видео карты на прямую либо через драйвер и как потом выводить графические спрайты (картинки) на экран?

20. Как работать с сетью с использованием языка программирования С? Сетевое программирование на С.

21. Почему не работает такой код:

C
1
2
3
#define ARRAY_LENGTH 50
 
unsigned char str_array[ARRAY_LENGTH];
22. В процессе компиляции программ на С там где идет вывод с русским языком он отображается абракодаброй. Как это можно исправить? Короче говоря не работает отображение кириллицы в консольных приложениях.

-
В процессе изучения языка программирования С стандарта 89 года по книге Гербердта Шилдта размещаю свою коллекцию функций на языке С. В коде чуть-чуть есть бардак. Хотелось бы узнать что не правильно там делал и какие-то рекомендации:

functions_collections.c
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#include <iostream.h>
 
// Коллекция моих функция реалзованых на С(Си)
 
// substr, str_replace, assembler_test, sp_to_dash, 
// hash_generation, str_all_to_upper, str_all_to_lower
 
#define MY_FUNCTIONS_BUFFER_LENGTH 4096
 
unsigned char *substr(const char *str_subject, unsigned int str_start, unsigned int str_length);
 
unsigned char *substr(const char *str_subject, unsigned int str_start, unsigned int str_length) {
 
    // Эта функция работала почти корректно. Ничего не правильного не заметил.
 
    unsigned char substr_buffer[MY_FUNCTIONS_BUFFER_LENGTH];
                                               
    unsigned int substr_cnt = 0;
 
    while( substr_cnt < str_length ) {
        
        substr_buffer[substr_cnt] = *(str_subject + str_start + substr_cnt);
    
        substr_cnt ++;      
    }
 
    substr_buffer[substr_cnt] = '\0';
 
    return substr_buffer;
}
 
#define MY_FUNCTIONS_BUFFER_LENGTH 4096
 
unsigned char *str_replace(const char *str_search, const char *str_replace, const char *str_subject);
 
unsigned char *str_replace(const char *str_search, const char *str_replace, const char *str_subject) {
 
    // str_replace function testing begin.
 
    unsigned char *str_replace_buffer;
 
    str_replace_buffer = str_replace("{LABEL}", "/Replace/", "{LABEL}");
 
    printf("ex.: %s\n", str_replace_buffer);
 
    str_replace_buffer = str_replace("{LABEL}", "/Replace/", "{LABEL}{LABEL}{LABEL}");
 
    printf("ex.: %s\n", str_replace_buffer);
*
    str_replace_buffer = str_replace("{LABEL}", "/Replace/", "{LAB");
 
    printf("ex.: %s\n", str_replace_buffer);
 
    str_replace_buffer = str_replace("{LABEL}", "/Replace/", "test {LABEL}");
 
    printf("ex.: %s\n", str_replace_buffer);
 
    // str_replace function testing end.
 
    // функция str_replace почему так до конца достаточно и не работает. Работает с очень ошибками.
    // Надо ее доработать. Так же в эту функцию и в функцию substr, и во все остальные функции доработать
    // контроль ошибок когда один из параметров либо все либо выборочно не заданы либо ещё что то не так
    // так же доработать все свои остальные функции. Все.
 
    unsigned char returned_buffer[MY_FUNCTIONS_BUFFER_LENGTH];
 
    unsigned str_search_c = 0, 
        str_replace_c = 0, 
        str_subject_c = 0, 
     str_replace_buffer_c = 0,
         str_search_l = strlen(str_search),
        str_replace_l = strlen(str_replace),
        str_subject_l = strlen(str_subject);
 
    while( str_subject_c < str_subject_l ) {        
        
        while( * (str_subject + str_subject_c) == * (str_search + str_search_c) ) {
                                       
            str_subject_c ++;
    
            str_search_c ++;
        }
 
        if( str_search_c == str_search_l ) {
 
            while( str_replace_c < str_replace_l ) {
 
                        returned_buffer[str_replace_buffer_c] = * (str_replace + str_replace_c);
 
                str_replace_buffer_c ++;
 
                str_replace_c ++;
 
            }
        
            str_replace_c = 0;
        
        }
 
        if( str_search_c > 0 && str_search_c < str_search_l ) {
 
            str_subject_c -= str_search_c;
        }
 
        str_search_c = 0;
 
        // Важно, эта строка стояла в самом верху цикла и сильно влияла на работу модуля.
 
        returned_buffer[str_replace_buffer_c] = * (str_subject + str_subject_c);
 
        str_replace_buffer_c ++;
 
        str_subject_c ++;
    }
    
    returned_buffer[str_replace_buffer_c] = '\0';
 
    return returned_buffer;
}
 
void assembler_test(void);
 
void assembler_test(void) {
    
    unsigned char c = '0';
 
    printf("%x\n", &c);
 
    __asm__ __volatile__ (
        "movl $0x0018ff57, %eax\n"
        "addb $0x0f, (%eax)\n"
    );
 
    // ^ комманды call, out не работают, почему то
 
    printf("%c", c);
}
 
void sp_to_dash(char *str);
 
void sp_to_dash(char *str) {
 
    while(*str) {
        
        if(*str == ' ') {
            
            printf("-");
 
        } else {
 
            printf("%c", *str);
        }
 
        str++;
    }   
}
 
void hash_generation(unsigned char output_hash[], unsigned short int output_hash_length);
 
void hash_generation(unsigned char output_hash[], unsigned short int output_hash_length) {
 
    srand(time(0));
 
    unsigned short int current_hash_index, current_hash_segment_type, current_hash_segment;
 
    int current_hash_index = 0;
 
    while( current_hash_index < output_hash_length ) {
        
        current_hash_segment_type = 0 + rand() & 3 ;
 
        switch( current_hash_segment_type ) {
        
            case 0: 
                current_hash_segment = (char)(48 + rand() % 9);
                break;
 
            case 1:         
                current_hash_segment = (char)(65 + rand() % 25);
                break;
 
            default:
                current_hash_segment = (char)(97 + rand() % 25);            
        }       
 
        output_hash[current_hash_index] = current_hash_segment;
    
        current_hash_index ++;      
    }
}
 
void str_all_to_upper(char str[]);
 
void str_all_to_upper(char str[]) {
 
        int char_index;
    
    for( char_index = 0; char_index < strlen(str); char_index ++ ) {
        
        str[char_index] = toupper(str[char_index]);
    }
}
 
void str_all_to_lower(char str[]);
 
void str_all_to_lower(char str[]) {
 
        int char_index;
    
    for( char_index = 0; char_index < strlen(str); char_index ++ ) {
        
        str[char_index] = tolower(str[char_index]);
    }
}
 
unsigned long int ansi_c_89_strlen(unsigned char *subject);
 
unsigned long int ansi_c_89_strlen(unsigned char *subject) {
 
    unsigned long int char_index = 0;
 
    while( subject[char_index] != '\0' ) char_index ++;
    
    return char_index;
}


P.S.: Всякие *visual studio не интересуют. Все вопросы касательно компилятора tcc, только с ним хочу работать.

БОЛЬШОЕ СПАСИБО ЗА ОТВЕТЫ!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2016, 11:44
Ответы с готовыми решениями:

На русском языке или языке программирования
Опишите на русском языке или на одном из языков программирования алгоритм получения из...

Курсы программирования на языке С#
Ищу курсы программирования... Куда пойти? Книги не советовать! Не буду я их читать!

Составить цикл на языке программирования
¦ ↓ ¦ ¦ ↓ ↓ ¦ ¦ ¦ ...

Работа со структурами в языке программирования Си
1.Опишите запись СТУДЕНТ и поместите в нее следующую информацию: Ф.И.О., оценки (математика,...

5
737 / 542 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
19.07.2016, 13:15 2
tolimadokara,
1.так присваивать значения можно переменным,но не строкам.Требуется специальная строковая функция копирования strcpy(). К тому же вы пытаетесь запихать в один байт целую строку(str_array[0][50]-это адрес одного элемента строки,т.е. одного символа а не всей строки).Что еще хуже-выходите за пределы выделенной памяти,ибо массив хоть и объявлен как str_array[50][50],максимальные индексы будут str_array[49][49],т.к. нумерация начинается с нуля,т.е. первый элемент имеет нулевой индекс,второй-1 ,50-й - 49.
И еще.Тип unsigned char используется для представления небольших целых чисел,но не для символов.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str_array[50][50];
 
    strcpy(str_array [0],"First string");
    strcpy(str_array [1],"Second string");
    strcpy(str_array [49],"Final string");
    puts(str_array [0]);
    puts(str_array [1]);
    puts(str_array [49]);
    return 0;
}
Добавлено через 4 минуты
2.Код ошибки какой?Подозреваю что выход за пределы выделенной памяти

Добавлено через 17 минут
21.С чего вы взяли что он не работает?
1
76 / 76 / 30
Регистрация: 12.02.2016
Сообщений: 199
19.07.2016, 13:32 3
Цитата Сообщение от tolimadokara Посмотреть сообщение
20. Как работать с сетью с использованием языка программирования С? Сетевое программирование на С.
Вот отличный гайд http://masandilov.ru/network/g... rogramming

Добавлено через 1 минуту
Цитата Сообщение от tolimadokara Посмотреть сообщение
6. Пытался просмотреть скомпилированный код С компилятором tcc в дизасемблере ollydbg, специально там в исходнике добавлял данные в виде строк, но однако которые в hex дампе кода программы вообще не нашел! Почему так происходит? Куда деваются данные с программы? Они там должны содержатся а их нет.
Чем обусловлена такая привязка именно к TCC? Почему не GCC и как дебаггер GDB соответственно?
2
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
19.07.2016, 14:19 4
Цитата Сообщение от tolimadokara Посмотреть сообщение
1. как в С создать массив строк?
Например:
C
1
2
char const * Array1[] = { "Abc", "Def", "Ghi" };
wchar_t const * Array2[3] = { L"First", L"Second", L"Third" };
2. Приложение будет закрыто. Приносим извинения за неудобства" то есть обычный отчет о ошибке в программе. Что это такое, и, как этого избежать?
Твоя программа где-то обращается по невалидному адресу. Или портит память (heap corruption).
Или провоцирует переполнение стека. Или еще что-нибудь. В этом случае нормальное продолжение
работы программы невозможно и система закрывает ее, показывая сообщение об ошибке.

3. Можно как то по-подробнее объяснить как работают приложения на языке С в среде операционной системы? В виде любых UML диаграмм либо чего угодно.
Ты вызываешь printf. printf вызывает соответствующие платформенно-зависимые функции ОС,
например WriteConsole под Windows. Далее выполняется переключение в ядро и вызов соответствующего
системного сервиса, который и выполняет всю основную работу. В итоге текст попадает в консоль.

4. Как пользоваться встроенным ассемблером в коде С? Где можно описание этого стандарта? Почему в асемблерных вставках в коде не работают команды IN, OUT для работы с портами ввода вывода?
Встроенный ассемблер не является частью стандарта C. Под каждую платформу свой ассемблер.
Более того, даже компиляторы не смогли "договориться" и встроенный ассемблер у всех разный.
Инструкции in, out и т.д. не работают, потому что твое приложение находится в третьем
(наименее привелегированном) кольце защиты, где они, как и многие другие привелегированные
инструкции, запрещены.

5. Верно ли сказать что компилятор языка С (здесь имеется ввиду - tcc) использует функции операционной системы для реализации таких математических функций как pow, sin, cos, и т.д.?
Лучше всего скомпилировать и посмотреть дизассемблерный листинг.

6. в исходнике добавлял данные в виде строк, но однако которые в hex дампе кода программы вообще не нашел!
Строки не добавляются прямо в код, для них компоновщик обычно выделяет отдельную секцию в исполняемом файле.

7. Есть ли специально созданные для языков С/С++ библиотеки реализующие работу с массивами?
Для C++ есть std::vector, например, а также array (в последних стандартах).

8. Как можно поэкспериментировать и пообщаться с оборудованием напрямую с программы на С?
Напрямую можно только при условии, что твой код выполняется в нулевом кольце защиты.
В этом кольце работает ОС и ее драйверы. Все остальные должны работать с оборудованием
через соответствующий API.

9. Как проще всего задать иконке скомпилированной программе на С свой любой значек?
Поместить в ресурсы exe иконку и присвоить ей самый маленький resource id.

10. Что такое библиотка *.dll?
Dll - это такой же исполняемый модуль, как и exe, они различаются чуть ли не одним битом в заголовке.
Можно сказать, что dll - это "кирпичик", из таких кирпичиков можно сразу строить панельные дома (exe).
Если один и тот же код много где используется в программе, его можно вынести в dll и тем самым
устранить дублирование, а также сэкономить место на диске. А еще dll позволяют уменьшать время
перекомпиляции проекта, а также изолировать работу программистов друг от друга.

Цитата Сообщение от tolimadokara Посмотреть сообщение
11. Простенький вопрос. Как кучу файлов программы объединить в одном значке? Что бы было не много файлов а одна программа, один значек и все.
Зависит от реализации.
Как правило, компиляторы имеют настройку "собрать все в одном файле", но это не всегда возможно.

12. Можно где то найти полный справочник по winapi на русском в формате chm?
Полного справочника по WinAPI не существует, ни на русском, ни на каком другом языке.
WinAPI - это огромный мутирующий монстр с тридцатилетней историей, самая полная и достоверная
информация на MSDN.

13. Как создавать не стандартные окна windows через использование winapi а свои собственные стилизованные?
Для этого существуют специальные библиотеки. Например, HTMLayout, Qt, XUILib и т.д.

14. Где можно найти мировой C-сборник библиотек работы со всем-всем-всем
Гугл - это и есть такой сборник.

15. Как в программе на С реализовать вычислительную много поточность?
"Как" - это слишком абстрактно.

16. Как в программе на С реализовать сетевую много поточность?
Аналогично пункту 15.

17. Как в ассемблерных вставках на ассемблере работать с много ядерными процессорами?
Создай N потоков, распредели между ними нагрузку равномерно, избегай общих блокировок и
прочих "узких горлышек". Ассемблерные вставки тут не при чем.

18. Как можно реализовать ф-ю eval в программе на С?
Никак. В языках типа C/C++ это невозможно by design.

19. Как менять видео режимы видео карты на прямую либо через драйвер и как потом выводить графические спрайты (картинки) на экран?
См. пункт 8.
Для эффективной работы с графикой есть OpenGL, DirectX.

20. Как работать с сетью с использованием языка программирования С?
С сетью можно работать разными способами. Можно "всырую", используя сетевые
функции ОС, например WinSock. А можно заюзать какую-нибудь библиотеку, их
великое множество: Boost.Asio, ACE, OpenSSL, POCO, cpp-netlib и т.д.

21. Почему не работает такой код:
C
1
2
#define ARRAY_LENGTH 50
unsigned char str_array[ARRAY_LENGTH];
Потому что такая запись поддерживается только в C99 и выше.

22. не работает отображение кириллицы в консольных приложениях.
Под Windows с этим проблемы, 100% рабочего решения не существует.
Лучше сразу приучать себя использовать в консольных приложениях только латиницу.
3
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,592
Записей в блоге: 51
19.07.2016, 14:33 5
Цитата Сообщение от tolimadokara Посмотреть сообщение
Все вопросы касательно компилятора tcc, только с ним хочу работать.
Если ваш tcc не компилирует:
C
1
2
3
#define ARRAY_LENGTH 50
 
unsigned char str_array[ARRAY_LENGTH];
то выбрось его нафиг в мусорку, и поставь нормальный компилятор на котором пишут нормальные проггеры.
Цитата Сообщение от LFC Посмотреть сообщение
И еще.Тип unsigned char используется для представления небольших целых чисел,но не для символов.
Как это? Именно используется для представления всех 256 значений, например из кодовой таблицы 866. Простой чар, как известно манипулирует только до 128 знаков, поэтому чтобы работать с русскими буквами нужен unsigned char.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Если не трудно - просьба объяснить:
Да тут на целое собрание сочинений можно ответить, а оно(это собрание) всё лежит в google или в yandex в строке поиска. Но кое-что отметить можно.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Часто при запуске скомпилированных программ с С с помощью компилятора tcc через 2-3 сек. в ОС windows7 появляется окошко с ошибкой "Обнаружена ошибка!
Повторяю: в помойку его.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Можно как то по-подробнее объяснить как работают приложения на языке С в среде операционной системы? В виде любых UML диаграмм либо чего угодно.
Ты реально полагаешь, что кто-то тут будет тебе рисовать какие-то рисунки? А самому посискать или книжки почитать?
Цитата Сообщение от tolimadokara Посмотреть сообщение
Приложение работает так что имеет доступ только к функциям winapi и все?
Если это приложение оконное, то да, - частью работает с этими функциями.
Цитата Сообщение от tolimadokara Посмотреть сообщение
С драйверами общается посредством встроенного установленного драйвера?
С дровами которые уже есть в ОС.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Не могу понять именно как устроенна операционная ситстема и не знаю как в этом всем разобраться.
С этим не могут разобраться сами создатели ОС, а ты говоришь...
Цитата Сообщение от tolimadokara Посмотреть сообщение
Целые тома посвященные ОС в 800 страниц читать не хочется. Можно как то самому в это въехать?
Придётся, другого пути нет...
Пару лет, думаю найдёшь на углубление в вопрос, не пожалеешь. Сразу только у кроликов...
Цитата Сообщение от tolimadokara Посмотреть сообщение
Как пользоваться встроенным ассемблером в коде С?
Чтайте маньюал к вашему компилятору.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Верно ли сказать что компилятор языка С (здесь имеется ввиду - tcc) использует функции операционной системы для реализации таких математических функций как pow, sin, cos, и т.д.? То есть в нем реализовано это все независимо от операционной системы, автономно? Либо, компилятор как то использует то что содержится в операционной системе? То что создано корпорацией microsoft
Ваш tcc наверно пользуется. Нормальный - нет.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Есть ли специально созданные для языков С/С++ библиотеки реализующие работу с массивами? Удобный инструмент работы с массивами: сортировка разная и прочее.
glib
Цитата Сообщение от tolimadokara Посмотреть сообщение
Простенький вопрос. Что такое библиотка *.dll
Они подключаются к исполняемому коду в ран тайм, а не компилируются статически в ексешник.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Простенький вопрос. Как кучу файлов программы объединить в одном значке?
Создать exe
Цитата Сообщение от tolimadokara Посмотреть сообщение
Можно где то найти полный справочник по winapi на русском в формате chm?
Можно. Всё можно. Только надо ручки приложить. Кто ищет тот обрящет.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Как создавать не стандартные окна windows через использование winapi а свои собственные стилизованные? Часто в программах не стандартный winapi оконный интерфейс а свой оригинальный красиво нарисованный, как это все создается?
Читай 1600 страниц по api.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Где можно найти мировой C-сборник библиотек работы со всем-всем-всем: декодеры/кодеры видео и звука, работы с изображениями, для создания 3D моделей, шифрования информации, алгоритмы расчета контрольных сумм и прочего? Есть в интернете какой то большой грамотный сборник таких функций на языке С?
У себя в компе, когда всё это соберёшь в результате упорной и тяжкой работы...
Цитата Сообщение от tolimadokara Посмотреть сообщение
Как в программе на С реализовать вычислительную много поточность?
Учи язык Си.
Цитата Сообщение от tolimadokara Посмотреть сообщение
Как в программе на С реализовать сетевую много поточность?
То же
Цитата Сообщение от tolimadokara Посмотреть сообщение
Очень хочется получить ответ на этот вопрос. Как менять видео режимы видео карты на прямую либо через драйвер и как потом выводить графические спрайты (картинки) на экран?
Через специальные средства нпример openGL или directx. Можно использовать специальные графические библиотеки, гугль в помощь.
---------------
Эх, если бы у меня была волшебная палочка, с помощью которой я бы смог за секунду стать специалистом в любой области... Но такого не бывает. Один программист сказал, что не нужно верить тем, кто обещает вас научить программированию за неделю, так как чтобы стать настоящим спецом нужно не менее 10 лет. Эта область только для фанатиков.
3
Администратор
12268 / 5333 / 268
Регистрация: 05.04.2011
Сообщений: 14,086
Записей в блоге: 2
19.07.2016, 14:54 6
tolimadokara, Вы уже далеко не новичок на форуме - пора бы прочитать и усвоить правила.

 Комментарий администратора 
ОДНА ТЕМА - ОДИН ВОПРОС


Закрыто.
1
19.07.2016, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2016, 14:54
Помогаю со студенческими работами здесь

Основы программирования на языке Ассемблер
Основы программирования на языке Ассемблер 12) История языка ассемблер. Назначение и применения....

Программы на языке программирования Basic
Помогите пожалуйста написать программы, кто чем может: 1. Написать программу (на любом языке...

Понимание препроцессора в языке программирования
Здравствуйте, вот думаю над этими вопросами, а препод говорит обьяснить более подробно, чтобы даже...

Работа с массивами в языке программирования...
Дан целочисленный массив А(n).Найти самую длинную последовательность подряд идущих единиц,указав...

Расскажите о вашем языке программирования
Добрый день! Расскажите о своём языке программирования Go. Можно своими словами. Желательно...

Числовые массивы в языке программирования С
1. Выведите на экран, два элемента массива В, номера которых превышают размерность массива D. 2....


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

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

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