[Visual C++] sndPlaySound - ścieżka do pliku
Ostatnio zmodyfikowano 2010-09-04 12:04
SeaMonster131 Temat założony przez niniejszego użytkownika |
[Visual C++] sndPlaySound - ścieżka do pliku » 2010-09-03 21:46:11 Witam, Otóż piszę w Visual C++ i w mmsystem (windows.h) jest taka funkcja do odtwarzania plików .wav. Ta funkcja wygląda tak: sndPlaySound( L"bam.wav", SND_ASYNC );
Czyli przed ścieżką do pliku muszę dodać 'L' :) Problem pojawia się wtedy gdy chce jako sciezke podać np tekst z textbox'a. Kombinowałem na różne sposoby: sndPlaySound( Pole->Text, SND_ASYNC ); sndPlaySound( L( Pole->Text ), SND_ASYNC ); sndPlaySound( LPole->Text, SND_ASYNC ); sndPlaySound( L Pole->Text, SND_ASYNC );
Wie ktoś może jak to można wykombinować? :D |
|
malan |
» 2010-09-03 22:00:06 Musisz znaleźć sposób żeby String^ (Pole->Text) stało się LPCTSTR. Jak? W Twoim temacie odnoście zapisu/odczytu danych z pliku (z użyciem Windows Forms) bawiłem się w te konwersje. Sprawdź to może. |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-09-04 10:58:07 Dobra, doszedłem do takiego czegoś: #include <windows.h> #include <mmsystem.h> #pragma comment( lib, "winmm.lib" )
String ^ sciezka = Pole->Text; char textt[ 100 ]; strcpy( textt, sciezka.c_str() ); sndPlaySoundA( textt, SND_ASYNC );
Teraz przy sndPlaySound() nie ma żadnego problemu lecz jest przy .c_str()... Error: 1>error C2228: left of '.c_str' must have class/struct/union
O co chodzi tym razem? Z błędu wynika że c_str musi mieć klase strukture i unie(?), a więc może nie dodałem jakiejś biblioteki przez include? |
|
malan |
» 2010-09-04 11:26:09 Wiesz, że std::string i String^ to różne typy? c_str() należy do klasy std::string, a nie String^. |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-09-04 11:36:56 Teraz już wiem..... To jak to inaczej zrobić? Bo w Twoim kodzie (@malana) to sie gubię, najlepiej jakby ktoś dał gotowy kod ( wiem że to prawie nie możliwe ale może ktoś sie skusi :) ), Byłbym wdzięczny :D |
|
malan |
» 2010-09-04 11:49:42 String ^ foo = ""; TCHAR tcharFileName[ 256 ] = { '\0' };
foo = Pole->Text;
for( int i = 0; i < foo->Length; i++ ) tcharFileName[ i ] = Convert::ToChar( foo[ i ] );
sndPlaySound( tcharFileName, SND_ASYNC ); ? |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2010-09-04 12:04:35 @malan - You are great! Dzięki wielkie, działa!! :) |
|
« 1 » |