Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

Открыть новую тему     Написать ответ в эту тему

Crazy_Shrike



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопросы по программированию на C/С++

 
  • Справочники, книги
  • Выбор IDE (среды программирования)
     
    Постарайтесь дать как можно больше информации о возникшей проблеме - это в конце концов в ваших же интересах чтобы вам помогли.

    Решения конкретных задач собираются и обсуждаются в теме Задачи по C/С++ .

    Прежде чем просить помощи в задании...
    Если позарез надо и вы даже готовы заплатить

    Как правильно задавать вопросы, если вы хотите получить ответ.

    Полезные ссылки:
    C++(eng)

  • Всего записей: 241 | Зарегистр. 25-03-2004 | Отправлено: 13:37 06-05-2004 | Исправлено: AZJIO, 19:45 12-05-2014
    FireZone

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vshersh, RedLord
    Спасибо за информацию. Когда написал вопрос, сам подумал о вспомогательном классе. Ещё такой вопрос. Есть ли в C++ аналог сишного realloc()?

    Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 11:08 15-08-2006
    RedLord

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FireZone
    нет.
    вроде бы рассматривался в комитете по стандарту вариант добавления в аллокатор STL такой возможности. что вышло - не знаю.
     
    в любом случае, если есть необходимость в спец. работе с памятью путь один - написание своего аллокатора (см. boost, Loki)

    Всего записей: 730 | Зарегистр. 05-03-2004 | Отправлено: 12:46 15-08-2006
    pit23



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. У меня возникл вопрос: как перенести программу на другой компьютер
    (WinXP Home), написанное в Visual C++ 2005. Не пойму в чем причина: при запуске экзешника все время выпадает ошибка: Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему.
    Попробывал написать простейшую программу: создание одного окна, но все равно при попытке запуска этой программы на другом компьютере появляется эта ошибка.
     
    PS. Программу писал на Win32 Api.  
     

    Всего записей: 60 | Зарегистр. 04-03-2006 | Отправлено: 14:49 15-08-2006 | Исправлено: pit23, 14:50 15-08-2006
    RedLord

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    pit23
    исходный код в студию

    Всего записей: 730 | Зарегистр. 05-03-2004 | Отправлено: 15:23 15-08-2006
    Collapse Troll

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Pit23
    http://forums.realcoding.net/lofiversion/index.php?t13011.html
     
     
    Добавлено:
    FireZone
    если нужен realloc для массива - то можно юзать вектора и resize. строки тоже изменяют размеры

    Всего записей: 790 | Зарегистр. 05-08-2006 | Отправлено: 16:21 15-08-2006
    pit23



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Collapse Troll
     
    Спасибо за ссылку. Разобрался.

    Всего записей: 60 | Зарегистр. 04-03-2006 | Отправлено: 09:47 16-08-2006
    floodway

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.
     
    Может это покажется смешным (или даже диким), но как можно сделать дефайн в дефайне или даже инклуд в дефайне? Т.е. что-то, наподобие:
    #define mydef #define FLAG 0 #include "some.h"
     
    тупость?

    Всего записей: 8 | Зарегистр. 10-05-2006 | Отправлено: 21:43 21-08-2006
    xdude



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    floodway
    Это по идее невозможно, хотя, может я отстал от жизни. Да оно и не нужно, в любой ситуации можно обойтись стандартными конструкциями #define, #ifdef, #if и т.д.

    Всего записей: 481 | Зарегистр. 04-11-2004 | Отправлено: 02:26 22-08-2006
    floodway

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xdude

    Цитата:
    в любой ситуации можно обойтись стандартными конструкциями #define, #ifdef, #if и т.д.

     
    Та да, но хотелось часто повторяющиеся строки, похожие на мой пример, сделать одним макросом с парочкой аргументов-подстановок. Не судьба(стандарт) видать

    Всего записей: 8 | Зарегистр. 10-05-2006 | Отправлено: 03:07 22-08-2006
    ItsJustMe

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Может это покажется смешным (или даже диким),  

    Ты конкретно напиши, что твой define должен выдавать.
    Но учти, define не может выдавать выражения, содержащие #.
     
    Можно, к примеру, сделать так:
     
    #define DTEST "stdafx.h"
     
    #include DTEST
    #include <windows.h>
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
      MessageBox(NULL, _T("Test"), _T("Test"), MB_OK);
        return 0;
    }

    Всего записей: 2025 | Зарегистр. 02-09-2005 | Отправлено: 16:00 22-08-2006
    RedLord

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    floodway
     

    Цитата:
    Не судьба(стандарт) видать  

     
    стандарт плюсов и Страуструп, в частности, вообще не рекомендуют использовать макросы.  
     
    посмотри в сторону boost.
    там очень мощная система инклудов. и используются нетривиальные конструкции #ifdef и т.д. возможно какие-то приемы возьмешь на вооружение
    минус - очень тяжело разбираться в коде

    Всего записей: 730 | Зарегистр. 05-03-2004 | Отправлено: 16:14 22-08-2006
    TomasVercetti

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я использую CBuilder 2006. Хочу написать прогу на WinHTTP. Делаю #include <winhttp.h>, и появляются следующие ошибки:
     
    [C++ Warning] winhttp.h(46): W8017 Redefinition of 'BOOLAPI' is  
    not identical
    [C++ Warning] winhttp.h(79): W8017 Redefinition of
    'SECURITY_FLAG_IGNORE_CERT_DATE_INVALID' is not identical
    [C++ Warning] winhttp.h(80): W8017 Redefinition of
    'SECURITY_FLAG_IGNORE_CERT_CN_INVALID' is not identical
    [C++ Error] winhttp.h(111): E2238 Multiple declaration for
    'HTTP_VERSION_INFO'
    [C++ Error] wininet.h(462): E2344 Earlier declaration of 'HTTP_VERSION_INFO'
     
    и так далее для многих объявлений. Но я не могу найти, где winhttp пересекается с wininet.h...
    Помогите, пожайлуста, разобраться.

    Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 17:47 28-08-2006
    xdude



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TomasVercetti
    Попробуй поменять местами #include <winhttp.h> и #include <wininet.h>.

    Всего записей: 481 | Зарегистр. 04-11-2004 | Отправлено: 17:58 28-08-2006
    TomasVercetti

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А я нигде не включаю #include <wininet.h> .... И внутри <winhttp.h> явного #include <wininet.h> тоже нету. Если я подключаю <wininet.h>, то всё работает. Только функций нужных нету. Вот я и застрял (

    Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 22:00 28-08-2006
    Mickey_from_nsk

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TomasVercetti
    А ты grep-ом не пробовал пройтись и найти объявления этих переменных?
    Они могут оказаться совсем в левом файле...

    Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 14:49 29-08-2006
    Elf23

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди пожалйста помогите написал прогу которая реализует односвязный список она в принципи дебажется но в одном месте выскакивает не могу понять почему
    вот код
    #include "stdafx.h"
     
     
    struct list
    {
        int data;
           list *next;
          //static list *first, *cur;
    };  
     
     
    //list* list::first = NULL;
    //list* list::cur = NULL;
     
    //int data;
           //list *next;
     
           list *first, *cur;
     
     
      int IsEmpty()
      {
          return first==NULL;
       
      }
     
      void GOToPrev()
      {  
          if (IsEmpty())
          {
              std::cout<<"\n List is empty";
            
              return;
          }
        if(cur==first)
               return;
            list *tmp;
            //tmp=new list;
            tmp=first;
            while(tmp->next!=cur)
                tmp=tmp->next;
                cur=tmp;
      }
     void AddFirst(int val)
     {
         first = NULL;
          
         list *tmp;
         tmp= new list;
         tmp->data=val;
         tmp->next=NULL;
     
     
         first=cur=tmp;
     }
      void AddAfterCur(int val)
      {
          if(IsEmpty())
          { AddFirst(val);
            return;
          }
          list *tmp;
          tmp= new list;
          tmp->data=val;
          tmp->next=NULL;
          cur->next=tmp;
          
      }
       int IsEnd()
       {
           return cur->next==NULL;
       }
       void Move()
       {
           if(IsEnd())
           {
               std::cout<<"\n End of list ";
            
               return;
           }
           cur=cur->next;
       }
        void GoToFirst()
        {
            cur=first;
        }
         int GetElem()
         {
             return cur->data;
         }
      void  DeleteFirst()
      {
          list *tmp;
          //tmp= new list;
          tmp=first->next;
          delete first;
          first=tmp;
      }
       void DeleteCur()
       {
           if(IsEmpty())
           {
               std::cout<<"\n List is emty! Can not remove!";
              
               return;
           }
          list *tmp;
           //tmp= new list;
           if(cur==first)
           {
               DeleteFirst();
               return;
           }
           else
            {
                tmp=cur;
                GOToPrev();
                cur->next=tmp->next;
                delete tmp;
            }
       }
         void Print()
         {
             if (IsEmpty())
                 return;
            list *tmp;
             tmp=first;
             do
             {
                 printf("%3i", tmp->data);
                 tmp=tmp->next;
             }
              while(tmp!=NULL);
         }
      int _tmain(int argc, _TCHAR* argv[])
     
    {
        first=NULL;
        cur->next=NULL;\\\\\\\ вот здесь выдает ошибку какая то фигня с памятью
        cur=first;
        int q;
        char a;
        
            do
        
            {
            
     
     
          int val;  
          Print();  
        //  printf();  
       
          switch (a)  
          {  
             case '1':  
                printf("\nВведите значение:\n");  
                scanf("%i",&val);  
                AddFirst(val);  
             break;  
             case '2':  
                printf("\nВведите значение:\n");  
                scanf("%i",&val);  
                AddAfterCur(val);  
             break;  
             case '3':  
                if(IsEmpty())  
                   printf("\nСписок пуст");  
                else  
                   printf("\nЗначение текущего элемента равно %i",GetElem());  
               
             break;  
             case '4':  
                DeleteCur();  
             break;  
             case '5':  
                Move();  
             break;  
             case '6':  
                GoToFirst();  
             break;  
             case '7':  
                if(IsEnd())  
                   printf("\nДостигнут конец списка");  
                else  
                   printf("\nКонец списка не достигнут");  
             
             break;  
             case '8':  
                if(IsEmpty())  
                   printf("\nСписок пуст");  
                else  
                   printf("\nВ списке есть элементы");  
             
             break;  
             
                 
             case '0':  
                GOToPrev();  
             break;  
          }  
       }  
       while (a!=27);  
            return 0;  
    }
     
    зарание спасибо!!

    Всего записей: 23 | Зарегистр. 23-08-2006 | Отправлено: 23:42 29-08-2006
    xdude



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
     
    first=NULL;  
    cur->next=NULL;\\\\\\\ вот здесь выдает ошибку какая то фигня с памятью  
    cur=first;  

    Дык cur еще не инициализирована, как можно ее членам что-то присваивать? По идее достаточно сделать cur=first=NULL;

    Всего записей: 481 | Зарегистр. 04-11-2004 | Отправлено: 23:49 29-08-2006
    Elf23

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Большое спасибо надо попробовать

    Всего записей: 23 | Зарегистр. 23-08-2006 | Отправлено: 23:57 29-08-2006
    TomasVercetti

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Смотрел и grep`ом. Только wininet.h, wininet.hpp, winhttp.h содержат объявления, например HTTP_VERSION_INFO. Зато узнал следующее. VCL где-то содержит объявления некоторых win структур. Поэтому при подключении других header`ов может возникать ошибка с ранним определением. По идее, conditional define NO_WIN32_LEAN_AND_MEAN должно помогать, но в данном случае не помогает. Если создать проект с winhttp.h без vcl.h, то всё работает. Но мне нужен vcl...

    Всего записей: 319 | Зарегистр. 09-01-2006 | Отправлено: 15:14 30-08-2006
    Mickey_from_nsk

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TomasVercetti
    А разнести их по разным файлам? Или на крайний случай - по разным модулям?

    Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 07:40 31-08-2006
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru