Прошу помочь найти причину ошибки "Invalid pointer operation"

Тема в разделе "WASM.ZEN", создана пользователем EvilsInterrupt, 4 июл 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Проект на Builder C++ 6.0 под WinXP SP2

    В фунции CfgInit в строке return Success; вылезает ошибка:
    Прошу помочь, ее найти
     
  2. dev.xadmin

    dev.xadmin New Member

    Публикаций:
    0
    Регистрация:
    30 авг 2006
    Сообщения:
    21
    Во - первых, в CRC в askut.rar ошибка.

    Во-вторых, IPO - это проблема с указателями. Я не знаю, на каком языке ты это написал, но проверь, правильно ли описаны структуры
     
  3. MegaZu

    MegaZu New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2005
    Сообщения:
    290
    Посмотри в дебаге не изменяеться ли адрес CfgFile.
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    наврядли получится запустить эээ проект с такими вещами:
    Код (Text):
    1.    PathCfgFile = fIni->ReadString("Object","PatchConfigFile",
    2.                                         "D:\\Work_project\\AskutXP\\");
    3.     PathAllMig = fIni->ReadString("Object","PatchAllMig",
    4.                                         "c:\\29_12_05\\sutfil1\\");
    5.     PathSreFiles = fIni->ReadString("Object","PatchSreFiles",
    6.                                         "c:\\29_12_05\\sutfil1\\");
    да и билдер я последний раз видел году в 99м :) но пару рекомендаций попробую дать:
    1) сделать проверки после каждой операции. например, TmpCfgName = CfgFile->FieldValues["NAZV"];, как я понимаю может вернуть NULL, а дальше TmpCfgName используется без проверки валидности;
    2) использовать по возможности смарт-поинты, что бы не путать с new/delete (можно своять самому, можно взять из std::, boost::);
    3) попробовать отключать код кусками и смотреть работает ли (например отключить CfgInit, возможно ошибка возникает и не в этой функции);
    4) это скорее и не рекомендация: зачем писать часть кода на ассемблере, если толку от этого никакого -- на сях будет не хуже, а оптимизации как я понимаю там (в вашем куске) никакой нет;
    5) грамотно пользоваться обработкой исключений : тупой вставкой try {} catch (...) особо делу не поможешь :)
    6) еще можно разруливать проблемы записью в лог и использованием assert'ов :);
    7) использовать системы статистического контроля исходников (аля splint'a тока для bcb (есть ли такое?). поставить boundschecker (есть ли для bcb?).
    можно еще что-нибудь посоветовать :)
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    На СП1 не заработает что ли?