Тут размещают свои топики новички в С/С++.

Тема в разделе "LANGS.C", создана пользователем nitrotoluol, 4 мар 2007.

  1. tid

    tid Member

    Публикаций:
    0
    Регистрация:
    2 дек 2010
    Сообщения:
    57
    проблему решил так:

    в настройках солюшена, в C\C++ Code Generation Runtime Library указал /MT вместо /MD.
     
  2. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    231
    /MT

    upd: опередили.
     
  3. yashechka

    yashechka Ростовский фанат Нарвахи Команда форума

    Публикаций:
    25
    Регистрация:
    2 янв 2012
    Сообщения:
    1.132
    Адрес:
    Россия
    А МТ что значит. Линковать библиотеку к exe или что
     
  4. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
    Линковать статически.
     
  5. tid

    tid Member

    Публикаций:
    0
    Регистрация:
    2 дек 2010
    Сообщения:
    57
    std::ifstream file("hello.txt");
    char ch;
    std::string str;

    while (file.get(ch)) {
    str += ch;
    }

    как прочитать файл быстрее в строку

    есть более красивое решение чем, что то типа:

    while (file.good()) {
    file >> strbuff;
    str = str + '\n' + strbuff;
    }

    вообщем мне нужен самый быстрый способ. все что я писал мне не нравится, как то не красиво, может быть есть более элегантный способ.
     
  6. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
  7. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    tid
    Код (Text):
    1. ifstream file("hello.txt");
    2. stringstream ss;
    3. ss << file.rdbuf();
    4. string s = ss.str();
    самый быстрый - WinAPI, ReadFile()
     
  8. tid

    tid Member

    Публикаций:
    0
    Регистрация:
    2 дек 2010
    Сообщения:
    57
    Спасибо!
     
  9. dmicarus

    dmicarus New Member

    Публикаций:
    0
    Регистрация:
    25 май 2009
    Сообщения:
    17
    Код (Text):
    1. class A
    2. {
    3. public:
    4.     int foo() {return 0;}
    5. };
    6.  
    7. int main()
    8. {
    9.     A a;
    10.  
    11.     boost::function<int()>  boost_functor1(boost::bind(&A::foo, a));    // Ok
    12.     std::function<int()> std_functor1(std::bind(&A::foo, a));       // Ok
    13.  
    14.     boost::function<void()> boost_functor2(boost::bind(&A::foo, a));    // !Ok
    15.     std::function<void()> std_functor2(std::bind(&A::foo, a));  // Fail
    16. }
    Объясните пожалуста, в чем принципиальная разница между бустовской реализацией и стандартной либой?
    В последнем случае не работает.
    Мне нужен именно function<void(void)> вне зависимости от возвращаемого типа.

    UPD:
    пришлось завернуть в лямбду
    Код (Text):
    1. std::function<void()> std_functor2([=]()mutable{ a.foo(); });
    вроде работает
     
  10. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.033
    Адрес:
    Йобастан
    Странно что в бусте это работает. Тут тоже должен быть фаил.
     
  11. sato

    sato Member

    Публикаций:
    0
    Регистрация:
    15 янв 2012
    Сообщения:
    125
    если название функции main() изменено ,то как узнать какая функция запускается первой?
     
  12. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    1.643
    sato,
    Спросить у того, кто изменил название функции main() :)
     
  13. sato

    sato Member

    Публикаций:
    0
    Регистрация:
    15 янв 2012
    Сообщения:
    125
    проект Emule
    в интернете говорят про свойства проекта /entry function
     
  14. darkdevel

    darkdevel New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2017
    Сообщения:
    3
    sato,
    даже если название функции main() не изменено, это не значит, что она будет запускаться первой :) (пример: mainCRTStartup при использовании CRT). Если вопрос чисто в образовательных целях, можно собрать с отладочными символами, поставить breakpoint в начале main() и посмотреть на стек. Если стоит задача контролировать точку входа, то для MSVC решением является параметр /ENTRY (см. https://msdn.microsoft.com/en-us/library/aa235421(v=vs.60).aspx , там же есть инфа по стандартным "первым функциям")
     
  15. sato

    sato Member

    Публикаций:
    0
    Регистрация:
    15 янв 2012
    Сообщения:
    125
    чем отличается?
    Код (Text):
    1. *SHA3_CTX  ctx
    Код (Text):
    1. SHA3_CTX*  ctx
    Код (Text):
    1. SHA3_CTX  *ctx
    Код (Text):
    1. SHA3_CTX   ctx*
     
  16. darkdevel

    darkdevel New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2017
    Сообщения:
    3
    1 и 4 какая-то ерунда (если без контекста смотреть и предположить очевидное - SHA3_CTX ctx это объявление переменной типа SHA3_CTX*).
    а 2 и 3 идентичны, вопрос стиля оформления. можно и с двух сторон по пробелу поставить SHA3_CTX * ctx (главное не писать конструкций типа SHA3_CTX * ctx1, ctx2).
     
    sato нравится это.
  17. sato

    sato Member

    Публикаций:
    0
    Регистрация:
    15 янв 2012
    Сообщения:
    125
    спасиб
     
  18. yashechka

    yashechka Ростовский фанат Нарвахи Команда форума

    Публикаций:
    25
    Регистрация:
    2 янв 2012
    Сообщения:
    1.132
    Адрес:
    Россия
    *SHA3_CTX ctx
    Есть такое
    (*ctx )(SHA3_CTX)