#IFDEF или " код для линукс и виндоус (в народе - "виндовс") одновременно"
Primary tabs
Forums:
В этой теме соберу материалы которые помогут понять "с чего начать на практике по Операционным системам" .
Итак, пишем на си , сразу для двух осей.
----------------------
сначала просто вспомним что такое =
1) препроцессор си = http://ru.wikipedia.org/wiki/%D0%9F%D1%8...
2) директивы препроцессора си (читать обязательно) = http://pers.narod.ru/study/cpp/10.html
- Log in to post comments
- 15453 reads
vedro-compota
Sat, 10/08/2011 - 14:04
Permalink
потоки
общие инструкции к выполнению задания на потоки =
в связи с этим полезным может оказаться =
1) WinAPI по-русски = http://develab.narod.ru/api/
---------------------------------------------
Для выполнения первой задачи по операционным системам требуется не только определить операционную систему , но ещё и использовать Win API , но так как эта тема посвящается определению операционной системы, то Win API мы рассмотрим в отдельном разделе .
Итак, сконцентрируемся на определении операционной системы.
вот неплохой пример =
// this version is for both Windows and UNIX, the following line /* */ // specifies that this is for WINDOWS #ifndef WINDOWS_XP /* если эта константа не включена*/ #define WINDOWS_XP /* включаем её = определение вида #define some При этом все экземпляры идентификатора some будут удалены из текста программы. Сам идентификатор some считается определенным и дает значение 1 при проверке директивой #if.*/ #endif // #include <XPCException.h> // add this later #ifdef UNIX /* если константа определена то подключаем следующие заголовочные файлы*/ #include <arpa/inet.h> #include <netdb.h> #include <netinet/in.h> #include <sys/socket.h> #else #include <winsock2.h> #endifили более по теме (работоспособность ещё надо проверить) :
#if defined(linux) || defined(__linux) printf("this is linux!\n"); #endif #if defined(_WIN32) || defined (_WIN64) /*первый для обеих определён*/ printf("this is windows!\n"); #endifЧитать источник = http://www.cyberforum.ru/cpp-beginners/t...
почитать по-буржуйски =http://gcc.gnu.org/onlinedocs/cpp/Condit...
_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 10/16/2011 - 09:25
Permalink
"Точкой входа" для консольной
"Точкой входа" для консольной программы для виндоус вроде как является вся та же main() - функция, поэтому будет справедлив такой вот код определяющий операционную систему =
#include <stdio.h> #include <stdlib.h> #if defined(_WIN32) || defined (_WIN64) #include <windows.h> #define WINDOWSS 1 #endif #ifdef WINDOWSS int main() { char* mtext = " hi Billy !! )) WE'RE IN WINDOWS NOW !))\n build as win32 CONSOLE program \n" ; printf("\n%s",mtext ); return TRUE; } #else int main() { char* mtext = " Glory to the great hacker, Linus Torvalds! we're not in Windows!\n" ; printf("\n%s",mtext ); return TRUE; } #endif_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 10/16/2011 - 09:32
Permalink
если же вы в Pelles С желаете
если же вы в Pelles С желаете наряду с консольным проектом использовать
всевозможные окна, то , например, для текстового сообщения надо написать что-то вроде =
#include stdio.h> #include stdlib.h> #if defined(_WIN32) || defined (_WIN64) #include windows.h> #define WINDOWSS 1 #pragma comment(lib, "user32.lib") #endif #define WIN32_DEFAULT_LIBS #ifdef WINDOWSS int main() { char* mtext = " hi Billy !! )) WE'RE IN WINDOWS NOW !))\n build as win32 CONSOLE program \n" ; printf("\n%s",mtext ); MessageBox(NULL," build as win32 CONSOLE program with message box !","Test",MB_OK); return TRUE; } #else int main() { char* mtext = " Glory to the great hacker, Linus Torvalds! we're not in Windows!\n" ; printf("\n%s",mtext ); return TRUE; } #endifчитать подробнее о директиве = http://netcode.ru/cpp/?lang=&katID=6&ska...
_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 10/16/2011 - 11:33
Permalink
ключевые слова
код одновременно для видноус и линукс #ifdef
код для линукс и виндовс одновременно в одном файле
узнать какая операционная система система язык си
определить операционную систему.
_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 10/16/2011 - 11:32
Permalink
ещё раз о точке
в принципе можно использовать и одну функцию main() а определение операционной системы производить внутри её)
_____________
матфак вгу и остальная классика =)