Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > PlaySound


Автор: maxmet 2.7.2008, 14:32
Написал программу, которая выводит окно, при этом играет музыка. Сделал необходимые .RC и .H файлы, всё как в книгу, вызываю PlaySound
Код

PlaySound(MAKEINTRESOURCE(SOUND_ID_CREATE),hinstance_app,SND_RESOURCE | SND_SYNC);

При компиляции выходят ошибки

Sound.obj : error LNK2001: unresolved external symbol __imp__PlaySoundA@12
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Sound.exe : fatal error LNK1120: 2 unresolved externals

подскажите пожалуста в чём дело, и как это можно исправить.
(Есть пример который идет с книжкой, пробовал компелировать его - та же ошибка)

Автор: Andrey44 7.7.2008, 10:24
Header: Mmsystem.h.
Link Library: Coredll.lib.

Автор: Quartz 15.7.2008, 00:29
2 Andrey44
То, что вы привели - из раздела Platform Builder for Microsoft Windows CE 5.0  smile 

Правильно так:
  Header: Declared in Mmsystem.h; include Windows.h.
  Library: Use Winmm.lib.

Соответственно, нужно добавить в проект winmm.lib

Автор: maxmet 16.7.2008, 15:49
Не совсем понял что это значит. Если можно, то вставте пожалуста код

Автор: Alexeis 16.7.2008, 16:37
Цитата(maxmet @  16.7.2008,  14:49 Найти цитируемый пост)
Не совсем понял что это значит. Если можно, то вставте пожалуста код 


Это значит что линкер не смог найти такую функцию и не знает чего дальше делать. Можно попробовать вставить такую штуку
Код

#pragma comment(lib,"winmm.lib")

Автор: maxmet 18.7.2008, 04:41
Ошибка с PlaySound исчезла, спасибо, но 2 другие так и остались

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Sound.exe : fatal error LNK1120: 2 unresolved externals

С чем они связаны и как их можно решить?

Автор: Alexeis 18.7.2008, 09:04
maxmet, может это какая-нить вижуалка и она ожидает чтобы главная функция называлась WinMain. Попробуйте создать консольный проект.

Автор: Supersedes 29.7.2008, 07:19
Зачем создавать консольный!?
Просто переименуй "main(...)" в "int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPSTR, int )"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)