Здравствуйте, Evgi1980, Вы писали:
E>Если сменить расширение .cpp файлов второго проекта на .с и собрать dll, то winamp начинает ее видеть. E>Почему?
Проект не смотрел, но скорее всего это поведение компилятора в названиях функций.
Дело в том, что в стандарте С внешяя функция не меняет своего названия (как она была задана в С, так и будет отображена в DLL, если явно не указать инное). Внутренняя функция в С имеет такоеже название, но впереди стоит символ подчеркивания.
В С++ немного инной подход. По умолчанию компилятор "уродует" название функции "дописывая" название спецсимволами означающее размер аргументов, вид вызова и т.д.
Из чего следует, что в С проекте явно не указано как транслировать название функции в DLL и при смене расширения на cpp имя "уродуется". Чтобы этого избежать, следует определить функцию так: