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

Discussion in 'WASM.BEGINNERS' started by WaterGhost, Sep 26, 2011.

  1. WaterGhost

    WaterGhost New Member

    Blog Posts:
    0
    Joined:
    Jun 15, 2007
    Messages:
    130
    Гуглил, смотрел тут. То что надо не нашел. Установил CentOS 6.0, gcc ("yum install gcc gcc-c++ autoconf automake"). Признаю честно, портирую на Unix впервые. Распространенные ошибки:
    Code (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

    Blog Posts:
    0
    Joined:
    Nov 26, 2004
    Messages:
    4,860
    Это совсем не стандартные типы, а макро. Cмотрите стандарт.
     
  3. valterg

    valterg Active Member

    Blog Posts:
    0
    Joined:
    Aug 19, 2004
    Messages:
    2,105
    WaterGhost
    А главное усвойте, что в Unix по умолчанию большие и маленькие буквы различаются и dword и DWORD - это две большие разницы, если вы не знаете ключ для игнорирования case :)
     
  4. h0t

    h0t Member

    Blog Posts:
    0
    Joined:
    Apr 3, 2011
    Messages:
    735
    не поверите, что это в С/С+=+ так и линух в данном вопросе не при чем)
     
  5. WaterGhost

    WaterGhost New Member

    Blog Posts:
    0
    Joined:
    Jun 15, 2007
    Messages:
    130
    Т.е. мне необходимо их заменить на простые типы?
     
  6. Z3N

    Z3N New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2009
    Messages:
    812
    WaterGhost
    Да, либо везде поменять их на простыевстроенные типы, либо просто определить их....
     
  7. valterg

    valterg Active Member

    Blog Posts:
    0
    Joined:
    Aug 19, 2004
    Messages:
    2,105
    h0t
    Да, Дельфи и Фортран меня испортили :-(
     
  8. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    судя по INVALID_HANDLE_VALUE и NTSTATUS проблема не только в типах... в линуксах нет ни WinAPI, ни Native API...

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

    WaterGhost New Member

    Blog Posts:
    0
    Joined:
    Jun 15, 2007
    Messages:
    130
    Я написал консольное приложение с использованием парочки функций WinAPI. Их штук 4-5 использовано. Где можно найти справочник по функциям аналогам в Unix (например NtQueryInformationProcess и др.)?

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

    Rel Well-Known Member

    Blog Posts:
    2
    Joined:
    Dec 11, 2008
    Messages:
    5,317
    в гугле... или в исходниках wine...

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

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

    WaterGhost New Member

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

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

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

    Booster New Member

    Blog Posts:
    0
    Joined:
    Nov 26, 2004
    Messages:
    4,860
    WaterGhost
    WinApi головного мозга.