Портирование Win - Unix

Тема в разделе "WASM.BEGINNERS", создана пользователем WaterGhost, 26 сен 2011.

  1. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Гуглил, смотрел тут. То что надо не нашел. Установил CentOS 6.0, gcc ("yum install gcc gcc-c++ autoconf automake"). Признаю честно, портирую на Unix впервые. Распространенные ошибки:
    Код (Text):
    1. MyFuncs.h:13: error: ‘DWORD’ has not been declared
    2. Engine.h:121: error: ‘BYTE’ does not name a type
    3. Engine.h:132: error: ‘ULONG’ does not name a type
    4. Engine.h:145: error: ISO C++ forbids declaration of ‘NTSTATUS’ with no type
    5. Engine.h:190: error: ‘INVALID_HANDLE_VALUE’ was not declared in this scope
    Какой юнит необходимо подключать в Юникс системах где описаны базовые типы? И где можно посмотреть "правила" переноса кода на Юникс системы? Какие модули\директивы и т.п. использовать нельзя? Заранее спасибо.
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Это совсем не стандартные типы, а макро. Cмотрите стандарт.
     
  3. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    WaterGhost
    А главное усвойте, что в Unix по умолчанию большие и маленькие буквы различаются и dword и DWORD - это две большие разницы, если вы не знаете ключ для игнорирования case :)
     
  4. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    не поверите, что это в С/С+=+ так и линух в данном вопросе не при чем)
     
  5. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Т.е. мне необходимо их заменить на простые типы?
     
  6. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    WaterGhost
    Да, либо везде поменять их на простыевстроенные типы, либо просто определить их....
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    h0t
    Да, Дельфи и Фортран меня испортили :-(
     
  8. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    судя по INVALID_HANDLE_VALUE и NTSTATUS проблема не только в типах... в линуксах нет ни WinAPI, ни Native API...

    нда... долго... очень долго объяснять... используйте библиотеку для портирования виндовс ту линукс из состава Wine например, которая предоставляет прослойку из WinAPI функций над линукс библиотеками... или еще лучше переделывайте все с использованием одной из кроссплатформенных библиотек, таких как GTK, wxWidgets, Qt и тд... или пишите свою библиотеку...
     
  9. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Я написал консольное приложение с использованием парочки функций WinAPI. Их штук 4-5 использовано. Где можно найти справочник по функциям аналогам в Unix (например NtQueryInformationProcess и др.)?

    Посмотрел Qt. Оно подойдет для написания консольного приложения средней сложности (WinSock + многопоточность + работа с процессами + калькуляция MD5) и компиляции его как под Windows так и под CentOS 6.0?
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    в гугле... или в исходниках wine...

    в принципе всю необходимую информацию можно считать из /proc/<pid>/<имя_файла>... pid может быть заменен на self, если нужно аналогичным образом поработать со своим процессом... угадайте, что хранится в файле /proc/self/maps например?

    средней сложности, но огромной толстоты)))
     
  11. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Тогда ясно. Лучше я погемороюсь и найду аналоги WinAPI функций, чем буду компилить через велосипед.

    Из-за наличия слова maps сдается что это отображаемый файл в памяти? Или что-то в этом роде.

    Спасибо за рекомендации. Буду искать в интернете аналоги функций и переписывать потихоньку. Если возникнут вопросы, задам в этой теме.
     
  12. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    WaterGhost
    WinApi головного мозга.