Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Где тут баг? :(

7.5K
31 января 2005 года
Caesarus
9 / / 29.10.2004
Что-то я совсем торможу, вроди раньше работала сия ф-ция, а щас вылетает эррор после вызова InternetReadFilе... или где-то рядом. Ф-ция скачивает текст файл с указанного урла и выбирает оттуда случайную строку на выходе...
Где я тут ошибся, подскажите плз. Спасибо!!

Код:
char* getConfigFile(char *downloadPath)
{
    HANDLE fl, hurl;
    DWORD dw;
    char buf[0xffff];
    FILE *f;
    int cnt = 0;
    char linktxt[512];
    char** array;
    BOOL notexists = FALSE;
    HINTERNET hinet;
    char config_filename[MAX_PATH];


    hinet = InternetOpen("sbot",INTERNET_OPEN_TYPE_PRECONFIG,0,0,0);
    hurl = InternetOpenUrl(hinet, downloadPath, 0, 0, 0, 0);

    if (hurl != NULL) {
        if ( !InternetReadFile(hurl, buf, sizeof(buf), &dw) )
            return NULL;

        ExpandEnvironmentStrings("%WINDIR%\\System32\\open32.conf", config_filename, sizeof config_filename);
        fl = CreateFile(config_filename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
        WriteFile(fl, buf, dw, &dw, NULL);

        CloseHandle(fl);

        InternetCloseHandle(hurl);
        InternetCloseHandle(hinet);

        if ((f = fopen(config_filename, "r")) != NULL) {
            cnt = 0;
            while (!feof( f )) {
                fgets(linktxt, sizeof linktxt, f); // read url link text

                array[cnt] = (char*) malloc( strlen(linktxt) + 1);
                strcpy(array[cnt], linktxt);

                cnt++;

                if (strstr(linktxt,  EOFF)) break;
            }
            if (f != NULL)
                fclose(f);
            if (cnt == 0)
                return NULL;
        }
    }else return NULL;

    return array[rand()%cnt];
368
31 января 2005 года
rostyslav
629 / / 13.07.2004
Для начала замени
ExpandEnvironmentStrings( "%WINDIR%\System32\open32.conf", config_filename, sizeof config_filename);

на

ExpandEnvironmentStrings( "%WINDIR%\\System32\\open32.conf", config_filename, sizeof(config_filename));
7.5K
31 января 2005 года
Caesarus
9 / / 29.10.2004
Цитата:
Originally posted by rostyslav
Для начала замени
ExpandEnvironmentStrings( "%WINDIR%\System32\open32.conf", config_filename, sizeof config_filename);

на

ExpandEnvironmentStrings( "%WINDIR%\\System32\\open32.conf", config_filename, sizeof(config_filename));




Так у меня и есть. Это сайт закосячил немного мой код...

7.5K
31 января 2005 года
Caesarus
9 / / 29.10.2004
Нашел ошибку :)
Под char** array; 1 раз память выделил тока :). Заменил на char* array[100]; и все чики-поки ;)

Всем спасибо ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог