Глубокоуважаемые вагоновожатые господа сишники, хочу испросить вашего совета.
У меня в подсистеме XDev/WinDev есть модуль Console, и в его сишной реализации XDev/WinDev/Lib/Console.c используется такой код:
Он прекрасно компилируется, но если его изменить на:Код:#if defined(WIN32) || defined(_WIN32) # include <windows.h> #endif #include "Console.h" #include "SYSTEM.h"
начинаются самые непонятные глюки:Код:#include "SYSTEM.h" #include "Console.h" #if defined(WIN32) || defined(_WIN32) # include <windows.h> #endif
Компилить лучше всего конечно в самой XDev, для этого качаем её из репа, запускаем BlackBox.exe и открываем WinDev/Lib/Mod/Console.Mod (выберем тип файла Oberon module (*.Mod)) и компилим F11. Как всё это устроено - даёт понять батник WinDev/Lib/Bin/compile.bat, вызываемый с параметром-имя файла:Console.c:17: error: incompatible types for redefinition of 'Console_WriteStrLn_WinAPI'
А то в Обероне я привык перечислять в секции импорта модули в любом порядке, и считаю это удобным.\XDev\WinDev\Lib\Bin\> compile.bat Console
Это к вопросу о том, что Си ну вот нисколечко ещё не протух на сегодняшнее время. И дизайн в нём прекрасный, и всё прозрачно. А для больших программных систем - так вообще не жисть, а рай сущий.
Спасибо!
P.S. Вообще-то работает и без этого, но блесните мудростью, просветите народ, в чём тут пень. В целях повышения всеобщей образованности, тыкскыть.





Ответить с цитированием
