Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2021, 16:33   #21
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Ну это бездоказательный поклёп - равно как и утверждение, которому возражают.
А мне куда деваться, бедному, если у меня 2 диплома: электронщика и программиста ? Я что - вдвойне тупой?
digitalis вне форума Ответить с цитированием
Старый 08.11.2021, 16:38   #22
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

В смысле бездоказательный? Чел правила форума прочитать не осилил - да. Зайти по ссылке и посмотреть, что за функции и прочее определено в конкретном хедере не осилил - да, для этого даже читать на англ. не надо. Чел требует, чтобы ему банальные вещи пересказали, разжевали, в рот положили, да еще и челюсть подвигали - да.
ForenLi вне форума Ответить с цитированием
Старый 08.11.2021, 16:52   #23
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Это да, но тут обобщение про всех инженеров-электроников. Щас придут ребята с моего другого форума - мало не покажется.
digitalis вне форума Ответить с цитированием
Старый 08.11.2021, 19:21   #24
Transformer-V
Новичок
Джуниор
 
Регистрация: 08.11.2021
Сообщений: 1
По умолчанию

Цитата:
Сообщение от Zubeezu Посмотреть сообщение
#include "stdafx.h" //Зачем нужна эта библиотека?
Какая разница между int main() и int _tmain(int argc, _TCHAR* argv[])?
Это точка входа в программу, т.е. загрузчик программ в операционной системе запустит этот участок кода первым. Точка входа может быть любая int __stdcall AllNames() {...} или int __stdcall Run() {...} __stdcall Main() {...} Можно задать любое имя, которое должно быть оражено ключем /entry: после компиляции текстовых файлов *.c/*.cpp в объектные файлы *.OBJ перед передачей их линкеру Link.exe
к примеру точка входа с именем int __stdcall AllNames() {...} в командах линкера должна быть запись /entry:AllNames


Цитата:
Сообщение от Zubeezu Посмотреть сообщение
#include <iostream> //Зачем включать iostream?
#include <cstdlib> //Зачем нужна эта библиотека?
Заголовки вспомогательных библиотек CRT Runtime, горы ненужного хлама работающего с текстом (байтами), памятью позволяющие программисту абстрагироваться от операционной системы.

Что бы скомпилировать пустую программу или работающие без Runtime достаточно знать как работать с компилятором, линкером и Win API операционной системы.

Написал пример пустой программы
Код:
//Sample.c

#include <Windows.h>

HINSTANCE hInst;

char TexBufer[1024],TimeValueText[3];
int TimeValue;
SYSTEMTIME SysTime;

void __stdcall Start(); //Точка входа в программу

void __stdcall Start()
{
hInst=GetModuleHandleA(NULL); //Kernel32.dll Получениe своего "Я"

lstrcpyA(TexBufer,"Привет мир\n"); //Kernel32.dll Копипурем байты в буфер до стопового байта
lstrcatA(TexBufer,"Текущее время: "); //Kernel32.dll Добавляем байты до стопового байта

GetLocalTime(&SysTime); // Kernel32.dll Получаем текущее время из RTC

wsprintfA(TimeValueText,"%d",SysTime.wHour); // User32.dll переводим из числа в строку во временный буфер
lstrcatA(TexBufer,TimeValueText); //Kernel32.dll Добавляем байты до стопового байта
lstrcatA(TexBufer,"- час(а/cов),"); //Kernel32.dll Добавляем байты до стопового байта
wsprintfA(TimeValueText,"%d",SysTime.wMinute); // User32.dll переводим из числа в строку во временный буфер
lstrcatA(TexBufer,TimeValueText); //Kernel32.dll Добавляем байты до стопового байта
lstrcatA(TexBufer,"- минут(ы),"); //Kernel32.dll Добавляем байты до стопового байта
wsprintfA(TimeValueText,"%d",SysTime.wSecond); // User32.dll переводим из числа в строку во временный буфер
lstrcatA(TexBufer,TimeValueText); //Kernel32.dll Добавляем байты до стопового байта
lstrcatA(TexBufer,"- секунд(а)"); //Kernel32.dll Добавляем байты до стопового байта


MessageBoxA(GetDesktopWindow(),TexBufer,"Программа пример",MB_ICONINFORMATION); // User32.dll  Вызов окна сообщения

ExitProcess(0); // Kernel32.dll завершение программы с кодом 0x00 (HEX) или 0 (DEC)
}
Команды компилятору:
Код:
cl.exe /I "ПУТЬ ДО ЗАГОЛОВОЧНЫХ ФАЙЛОВ (*.h) \Include" /D_WIN32_WINNT=0x0601 "Sample.c" /Od /Zl /c /GS-
Команды линкеру:
Код:
link.exe "Sample.obj" /LIBPATH:"ПУТЬ ДО БИБЛИОТЕК (*.lib) \Lib"  Kernel32.lib User32.lib /entry:Start /subsystem:windows,6.1 /version:6.1 /osversion:6.1 /map /nodefaultlib

Последний раз редактировалось Transformer-V; 08.11.2021 в 19:48.
Transformer-V вне форума Ответить с цитированием
Старый 08.11.2021, 19:30   #25
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 964
По умолчанию

Цитата:
Сообщение от Transformer-V Посмотреть сообщение
запустит этот участок кода первым
не совсем так - сначала будет запущен код конструкторов глобальных объектов
Алексей1153 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать функцию в main'е sandra1611 Помощь студентам 9 26.10.2013 13:18
Передача массива из main() в функцию и обратно. Си Pecho Помощь студентам 1 31.08.2011 23:06
Exception in thread "main" java.lang.NullPointerException at Main.main(Main.java:9) elpilasgsm Помощь студентам 4 18.01.2011 08:23
Возврат массива значений в функцию main. sadf Общие вопросы C/C++ 5 03.03.2010 21:32
разбить программу на функции main и пользовательскую функцию Ferghost Общие вопросы C/C++ 2 31.05.2009 18:15