|
2 / 2 / 1
Регистрация: 27.07.2009
Сообщений: 75
|
|
функция strcat30.07.2009, 17:49. Показов 3332. Ответов 1
Метки нет (Все метки)
Добрый день!Помогите решить проблему...Пишу mp3 плеер.После запуска работает нормально, но после выбора одного или нескольких файлов выдает окно с ошибкой и открывает в проекте файл strcat.asm и в нем указатель стоит на против строки mov [edi],dl...Если отключить функцию вывода плейлиста,то тогда все работает...
функция вывода плейлиста в окно: void Playlist(HDC hdc) { char buf[20]; char* str; RECT* frame = new RECT; HBRUSH yellow_brush; HBRUSH old_brush; HFONT font, font1, font2; font1 = CreateFont(height_symbol, width_symbol, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, "Arial Italic"); font2 = CreateFont(height_symbol, width_symbol, 0, 0, 0, 5, 0, 0, 5, 0, 0, 5, 0, "Arial Italic"); COLORREF white = RGB(255, 255, 255), blue = RGB(0, 0, 255), green = RGB(0, 255, 0), red = RGB(255, 0, 0), color_num, color_text, color_time, color; yellow_brush = CreateSolidBrush(RGB(255, 255, 0)); frame->left = 0; frame->top = 0; frame->right = 300; frame->bottom = height_symbol; for(int pos = initial_pos_list; pos <= counter_track; pos++) { int num_track = pos+1; int pos_track = (pos-initial_pos_list)*(height_symbol+interva l_str)+interval_str; if(pos == choose_track) { old_brush = (HBRUSH)SelectObject(hdc, yellow_brush); Rectangle(hdc, frame->left, frame->top+pos_track, frame->right, frame->bottom+pos_track); SelectObject(hdc, old_brush); color_num = blue; color_text = blue; color_time = blue; font = font2; } else { color_num = green; color_text = white; color_time = red; font = font1; } if(num_track < 10) sprintf(buf, " 000%d ", num_track); else if(num_track < 100) sprintf(buf, " 00%d ", num_track); else if(num_track < 1000) sprintf(buf, " 0%d ", num_track); color = color_num; PrintText(hdc, 0, pos_track, buf, color, font); if(strlen(list_music[pos]->name) > 27) { str = new char[28]; memset(str,'\0',sizeof(char)); strncpy(str, list_music[pos]->name, 24); strcat(str, "..."); } else strcpy(str, list_music[pos]->name); color = color_text; PrintText(hdc, 7*width_symbol, pos_track, str, color, font); color = color_time; PrintText(hdc, 35*width_symbol, pos_track, list_music[pos]->time, color, font); } } функция PrintText(): void PrintText(HDC hdc, int x, int y, char* str, COLORREF color, HFONT font) { SelectObject(hdc, font); SetBkMode(hdc, TRANSPARENT); COLORREF old_color = SetTextColor(hdc, color); TextOut(hdc, x, y, str, strlen(str)); SetTextColor(hdc, old_color); } Добавлено через 2 минуты 0 секунд работаю в visual studio 2005 Добавлено через 13 минут 41 секунду только что проверил и нашел слабое место...Если закомментировать участок if(strlen(list_music[pos]->name) > 27) { str = new char[28]; memset(str,'\0',28); strncpy(str, list_music[pos]->name, 24); strcat(str, "..."); } else strcpy(str, list_music[pos]->name); а вместо этого написать str = new char[size]; strcpy(str, list_music[pos]->name); только теперь длинные имена не обрезаются... Подскажите пожалуйста в чем у меня ошибка
0
|
|
| 30.07.2009, 17:49 | |
|
Ответы с готовыми решениями:
1
Не работает strcat Глюк при вызове strcat. Функция strcat |
|
Maniac
|
||||||
| 30.07.2009, 17:56 | ||||||
Сообщение было отмечено larry как решение
Решение
А std::string использовать религия не позволяет?
0
|
||||||
| 30.07.2009, 17:56 | |
|
Помогаю со студенческими работами здесь
2
функция strcat функция strcpy и strcat Не работает функция strcat Что делает функция strcat(t, f)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|