vc2008

Тема в разделе "WASM.HEAP", создана пользователем NoName, 24 май 2008.

  1. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Great
    А можно где слить этот C/C++ компилер онли?
     
  2. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    _basmp_
    В теме "Дошлёпок 2008" на форуме.
     
  3. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    twgt
    похоже поиск по форуму не пашет..
     
  4. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
  5. Постигающий

    Постигающий New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2006
    Сообщения:
    35
    _basmp_
    http://wasm.ru/forum/viewtopic.php?id=21898
     
  6. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    twgt
    Постигающий
    Нет-нет вы не поняли. Меня интересует только С/С++ компилер со своими длл-ями. Линкер юзаю ОВ-овский, имхо он лучше. Асмы мои меня устраивают вполне.
    Я-ж так понял, тут
    про cl идется?
     
  7. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
  8. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Офигительный просто. Я весь день сижу над программой, перепроверяю значения, считаю смещения вручную и в хекс-редакторе, а всё почему, а вот почему:
    Код (Text):
    1. ; 333  :        cat=cat+289;
    2.  
    3.     add edi, 83521
    По какой-то причине он решил что 289 это 83521.

    Сделал асм-свтавку
    Код (Text):
    1. ; 333  :        add cat,289
    2.  
    3.     add DWORD PTR _cat$[esp+16], 289
    И всё заработало как часы, вот только день времени потерял.

    Мда. Оказалось что 83521=289*289, при sizeof(cat)=289
    Т.е. чтобы перейти к следуюущей структуре надо указатель на неё увеличить на 1. Раньше не встречал такого.
     
  9. UTeX

    UTeX New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2007
    Сообщения:
    584
  10. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    twgt
    Дык всегда так в сишнике. В асме или том же Pascal все уже по честному - плюс 1 байт к адресу.
     
  11. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Незнаю. В "cat=cat+289;" cat-указатель, то бишь поинтер. Обычно делали так
    typedef struct _foo
    {
    char* aaa;
    int bbb;
    }foo,*pfoo;
    ....
    pfoo f;
    ...
    f=f+sizeof(_foo);
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    twgt
    ну нифига ж себе тебя глючит)
    всегда было так, что pointer_to_some_struct+1 тычет на следующий элемент
     
  13. Guest

    Guest Guest

    Публикаций:
    0
    бывало и у меня такое, при добавлении sizeof к указателю на структуру без приведение ее к виду char* чудесным образом нормально работало )))
     
  14. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    В C/C++ операторы +, -, ++, -- при работе с указателями на типизированные структуры изменяют их значения кратно размеру структур. Если работает по другому - компилятор глючит, либо он не понял хитрого приведения типов в коде.

    im1111
    Возможно компилятор распознавал ошибку и корректно все исправлял - вот и чудеса.
     
  15. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    im1111
    размерность char* == 1, вот и выходило у вас. Еще можно к unsigned приводить.
     
  16. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    _basmp_
    размер unsigned зависит от компилятора и целевой платформы. лучше указывать целиком ( например unsigned char ).
     
  17. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Xerx
    Подловили вы меня. Точно пойнтер на 32-ых == ансигнед инт, а на 64-х ансигнед лонг (или лонг лонг?).

    twgt
    Я случайно подумал, а не могли-бы вы вырезать cl 2008 co dll-и и выложить где-нибудь (в сильнозапакованом виде)?
     
  18. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    _basmp_
    Конечно стоит проверить, но насколько помню на 32х: long == int = 32, long long = 64; на 64х long уже == 64.

    [offtop]
    Раз пошла такая пьянка, то может вообще кому нужно скачать туже VC2008 (ну или еще чего нужное коллективу) целиком и выложить где кусками? Мне с безлимиткой не жалко :)
    [/offtop]
     
  19. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Xerx
    есть одна тонкость на 64-х лонг - один 64-й регистр, а лонг лонг - два 32-х. Особо не проверял, тк машину имел мельком.

    Очень даже да. Да что там - ДА! Только если можно, без графического мусора, МФЦ, СТЛ. отдельно cl с dll-ями. отдельно ml. Отдельно h-и, отдельно lib-ы. Итд. И желательно где нибудь на народе. С довнлоадных сайтов можно ежика родить пока всю их рекламу пересмотришь.
     
  20. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    _basmp_
    Речь выше шла о числе бит, а не о том где и как они хранятся. Про хранение я и не писал.


    ну, в общем, качаю "Visual Studio 2008 Express Edition All-in-One DVD" (0.87ГБ). Докачаю, разберемся куда и чего.