powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS 2013 и MilkDrop2
13 сообщений из 13, страница 1 из 1
VS 2013 и MilkDrop2
    #39168026
AET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AET
Гость
Добрый день, друзья.
Пытаюсь скомпилировать из исходников проект MilkDrop - да, тот самый старичок от Winamp.
https://github.com/Doormatty/MilkDrop2

Компилирую в VS2013 Community edition
Компиляция проходит успешно, собирается Dll
Но при выполнении упорно падает на вызове функции
Код: plaintext
1.
_swprintf_l(szDefault, L"%f", g_use_C_locale, fDefault);


Файл utility.cpp (106 line)
С ошибкой: Unhandled exception at 0x523A9022 (msvcr120d.dll) in winamp.exe: 0xC0000005: Access violation reading location 0x00000000.

Если полезть внутрь функции, то видно что само падение происходит в файле студии swprintf.inl в процедуре:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#pragma warning( disable : 4793 4141 )
extern "C++" _SWPRINTFS_DEPRECATED _CRT_INSECURE_DEPRECATE(_swprintf_s_l) __inline int _swprintf_l(_Pre_notnull_ _Post_z_ wchar_t * _String, _In_z_ _Printf_format_string_params_(0) const wchar_t * _Format, _locale_t _Plocinfo, ...)
{
    va_list _Arglist;
    _crt_va_start(_Arglist, _Plocinfo);
    int _Ret = __vswprintf_l(_String, _Format, _Plocinfo, _Arglist);
    _crt_va_end(_Arglist);
    return _Ret;
}
#pragma warning( pop )



На строке
Код: plaintext
1.
int _Ret = __vswprintf_l(_String, _Format, _Plocinfo, _Arglist);



Ошибка говорит о чтении из пустого указателя, однако все параметры передаются непустыми.
Да и код официальный от NullSoft - должен работать.

Прошу помощи. В VS работаю 2 день. Хотя на других языках опыт очень богатый (java, js, php, delphi ).
Поэтому заранее извиняюсь, если вопрос очевидный.
P.S. Гуглил, но не помогло
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168038
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AETКомпиляция проходит успешно, собирается Dll
Но при выполнении упорно падает на вызове функции
DLL не может выполняться сама по себе. Следовательно к падению приводит вызов какой-то
функции из ней внешним приложением. Это приложение твоё?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168040
AET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AET
Гость
Dimitry Sibiryakov, приложение Winamp (сообщение о падении содержит название приложения)
MilkDrop — это визуализатор для него.
Но там до визуализации дело при запуске даже не доходит.
Начинается инициализация и все это дружно падает с ошибкой.
Отладчик показывает где происходит ошибка - в начале поста все описал.

Ошибка не в вызове функций, они из DLL-ки нормально и нужные вызываются, а вот внури при работе со строками проблема.
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168068
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AET,

Компилируй тем же компилятором, что и WinAmp.
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168109
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AET,

Все значения параметров этой функции

Код: plaintext
1.
_swprintf_l(szDefault, L"%f", g_use_C_locale, fDefault);



ПЕРЕД вызовом сказать можешь ?
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168116
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AETНо при выполнении упорно падает на вызове функции
Код: plaintext
1.
_swprintf_l(szDefault, L"%f", g_use_C_locale, fDefault);





Вот сигнатура этой функции из MSDN

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int _swprintf_l(
   wchar_t *buffer,
   size_t count,
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);



Где у тебя второй параметр?
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168117
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также, расскажи ещё, что за .DLL, что за приложение её вызывает,
и какой рантайм они у тебя оба используют.
Это можно выяснить утилитой depends .
Учти, что нужно использовать утилиту той же битности (32,64), что и твоё приложение.
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168184
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я не использую функции для работы со строками из нового рантайма. Во-первых, от лукавого, во-вторых, при запуске у пользователя оно непременно начнёт ругаться и требовать установить сишний 10-й рантайм. Оно вам надо?...
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168189
AET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AET
Гость
MasterZiv, эта функция существует в 2 вариантах.
Вот сигнатура второго:

Код: plaintext
1.
2.
3.
4.
5.
6.
int __swprintf_l(
   wchar_t *buffer,
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);



Взято с
https://msdn.microsoft.com/ru-ru/library/ybk95axf.aspx


MasterZivТакже, расскажи ещё, что за .DLL, что за приложение её вызывает,
и какой рантайм они у тебя оба используют.

Как и писал выше:
dll — это визуализатор MilkDrop2 для Winamp от компании NullSoft. В посте я ссылку на git указал.
Приложение — сам Winamp. В комплекте с ним уже идет скомпилированная версия MilkDrop'а - она работает нормально.

авторВсе значения параметров этой функции
szDefault создается как wchar_t [64] и сразу идет в функцию, в момент вызова функции там все что угодно
g_use_C_locale - корректное значение типа locale_t - не знаю как его сюда вставить - это здоровый такой объект. Из winapi текущей локалью заполняется.
fDefault - это float '1.7'
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39168196
AET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AET
Гость
CEMb, для меня это непонятный момент, так как с С++ опыта мало.
А в других языках таких проблем не встречал.

Как управлять рантаймом при сборке? Можно ли скомпилировать из VS 2013 в режиме совместимости с Visual C++ 9.0 ( VS 2008).
Та DLL, которая идет в комплекте в свойствах показывает именно эту версию.
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39169958
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AETMasterZiv, эта функция существует в 2 вариантах.
Вот сигнатура второго:

Код: plaintext
1.
2.
3.
4.
5.
6.
int __swprintf_l(
   wchar_t *buffer,
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);





Функция языка С не может быть с многими вариантами, только с одним. а это именно С-функция, из стандартной библиотеки С, в данном случае из не очень стандартной её части.

так что разбирайся.
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39169963
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[CEMb, для меня это непонятный момент, так как с С++ опыта мало.
А в других языках таких проблем не встречал.

добро пожаловать ф клуп.

Как управлять рантаймом при сборке?

опции компилятор гляди на Соотв. тему.

в принципе там есть такие дихотомии:
- релиз/дебаг (тебе нужен скорее всего релиз)
- статика/динамика(dll) ,тебе нужна dll
- single threaded /multi threaded - тебе нужна мульти, потому что в виде .dll есть только она.



Можно ли скомпилировать из VS 2013 в режиме совместимости с Visual C++ 9.0 ( VS 2008).

НЕТ.

возможно, очень маловероятно, что да, но это не для тебя задача.


Та DLL, которая идет в комплекте в свойствах показывает именно эту версию.

В итоге ты вызываешь черт знает что, черт знает откуда и передашь еще то...
Ну, надо сказать, у тебя очень мало шансов на успех.
...
Рейтинг: 0 / 0
VS 2013 и MilkDrop2
    #39170054
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivAETMasterZiv, эта функция существует в 2 вариантах.
Вот сигнатура второго:
Код: plaintext
1.
2.
3.
4.
5.
6.
int __swprintf_l(
   wchar_t *buffer,
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);




Функция языка С не может быть с многими вариантами, только с одним. а это именно С-функция, из стандартной библиотеки С, в данном случае из не очень стандартной её части.

так что разбирайся.
Вы обсуждаете разные ф-ции. Одна с одним подчеркиванием, другая с двумя =)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / VS 2013 и MilkDrop2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]