Ĺadny brzuch
Jest to w dziale faq...Owszem ale nie działa... :/ W jaki sposób (bez doinstalowywania jakis bibliotek)w c++ można wysunąć szufladę cd-romu.... ?
http://forum.ks-eksp. ..ndpost&p=412446nie działa? Chodzi Ci o wysunięcie tacki w windzie oczywiście?
Użytkownik Cyrkiel edytował ten post 09 październik 2005, 13:35
oczywiscie w windzie....
"8 E:\Programy\Dev-Cpp\main.cpp
`String' was not declared in this scope"
w "void OpenCloseCD(G: Drive, bool OpenCD)"
albo 6 E:\Programy\Dev-Cpp\main.cpp
`String' undeclared (first use this function)
w tym samym jeżeli przed void dam
main()
{
zamiast G: mam String oczywiscie ale to nie zmienia postaci rzeczy, nadal ten sam błąd że String nie zdefiniowane...
Użytkownik Feniks edytował ten post 09 październik 2005, 12:53
Bo to było dla BCB ;) Masz poprawkę:void OpenCloseCD(char* Drive, bool OpenCD) { MCI_OPEN_PARMS OpenParm; int Handle = 0; OpenParm.dwCallback = 0; OpenParm.lpstrDeviceType = "CDAudio"; OpenParm.lpstrElementName = Drive;reszta jak była ;)
no...prawie, ale wyświetla się ...
[Linker error] undefined reference to `mciSendCommandA@16'
////
Linkuj z biblioteką winmm.lib [winmm.a w Dev-C++] - tam są wszystkie funkcje dot. MCI...
... przynajmniej As Far As I Recall...
Ojej, jak dawno tu nic nie postowałem :)
Pozdrawiam,
TeMPOraL.
hmmm... znalazłem tylko coś takiego jak libwinmm.a wiec zapisałem
#include <libwinmm.a>
ale wyskakuje no such file or directory, a plik w katalogu dev/lib jest...
#include <libwinmm.a>
Heh... Jakby to powiedzieć... napisałem
#include <winmm.a> i nie mogł znaleźć pliku lub folderu... szare komórki zadziałały i postanowiłem wyszkuać taki, bądź podobny plik ... znalazło w lib/ plik o nazwie libwinmm.a , więc może dlatego tak napisałem?? :P
A po co inkludujesz winmm? Zrób tak: menu Project -> Project Options -> Parameters -> Add Library or Object, znajdujesz plik "libwinmm.a" [jest w \lib] i tyle ;)
A ja ci napisze jak to zrobić w WINAPI :].
dodajesz do kodu #include <mmystem.h>
Potem tworzysz w projekcie przycieks który porgramuejsz nastepujaco
MCI_OPEN_PARM OpenParm; MCI_SET_PARMS SetParm; MCIDEVICEID dID; OpenParm.lpstrDeviceType = "CDAudio"; mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE, (DWORD_PTR)&OpenParm); dID = OpenParm.wDeviceID; mciSendCommand(dID, MCI_SET, MCI_SET_DOOR_OPEN, (DWORS_PTR)&SetParm); mciSendCommand(dID, MCI_CLOSE, MCI_NOTIFY, (DWORD_PTR)&SetParm);
Jeśli checsz zamknac tacke to zamiast MCI_SET_DOOR_OPEN piszesz MCI_SET_DOOR_CLOSED.
Polecam uzywanie WINAPI gdyż korzystanie z niego zmniejsza rozmiar programu :].
Dobra, a więc kod wyglada tak:
#include <iostream>
#include <stdlib.h>
#include <mmsystem.h>
void OpenCloseCD(char* Drive, bool OpenCD)
{
MCI_OPEN_PARMS OpenParm;
int Handle = 0;
OpenParm.dwCallback = 0;
OpenParm.lpstrDeviceType = "CDAudio";
OpenParm.lpstrElementName = Drive ;
OpenParm.dwCallback = Handle;
if (OpenCD)
{
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (int) &OpenParm);
mciSendCommand(OpenParm.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
} else {
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (int) &OpenParm);
mciSendCommand(OpenParm.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
}
mciSendCommand(OpenParm.wDeviceID, MCI_CLOSE, MCI_NOTIFY, (int) &OpenParm);
}
no i dodałem lib winmm tak jak kolega wyzej napisał...
wyskakuje następujacy błąd...
[Linker error] undefined reference to `WinMain@16'
co to może być i jak to można naprawić??
wyskakuje następujacy błąd...
[Linker error] undefined reference to `WinMain@16'
co to może być i jak to można naprawić?? A gdzie maszint main() { }?
Używaj znacznika [CODE][/CODE ]
Użytkownik Cyrkiel edytował ten post 10 październik 2005, 15:31
mimo to wyskakuje
[Linker error] undefined reference to `mciSendCommandA@16'
:/
Doszedłem.. do tego... i działa
#include <mmsystem.h>
mciSendString("Set cdaudio door open wait", NULL, 0, NULL); // Wysunięcie
mciSendString("Set cdaudio door closed wait", NULL, 0, NULL); // Wsunięcie
po dołączeniu do kompilatora bibliteki winmm.lib :)
Doszedłem.. do tego... i działa
#include <mmsystem.h>
mciSendString("Set cdaudio door open wait", NULL, 0, NULL); // Wysunięcie
mciSendString("Set cdaudio door closed wait", NULL, 0, NULL); // Wsunięcie
po dołączeniu do kompilatora bibliteki winmm.lib :)
Tak spoko ale mi takie cos nie dziala. pokazuje mi bledyw pliku mmsystem.h. niech mi ktos pomoze
#include <windows.h>
popiel_kam juz wyslalem ci pw. trzeba dodac do parametru projektu bibioteke libwinmm.a
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
http://forum.ks-eksp. ..ndpost&p=412446nie działa? Chodzi Ci o wysunięcie tacki w windzie oczywiście?
Użytkownik Cyrkiel edytował ten post 09 październik 2005, 13:35
oczywiscie w windzie....
"8 E:\Programy\Dev-Cpp\main.cpp
`String' was not declared in this scope"
w "void OpenCloseCD(G: Drive, bool OpenCD)"
albo 6 E:\Programy\Dev-Cpp\main.cpp
`String' undeclared (first use this function)
w tym samym jeżeli przed void dam
main()
{
zamiast G: mam String oczywiscie ale to nie zmienia postaci rzeczy, nadal ten sam błąd że String nie zdefiniowane...
Użytkownik Feniks edytował ten post 09 październik 2005, 12:53
Bo to było dla BCB ;) Masz poprawkę:void OpenCloseCD(char* Drive, bool OpenCD) { MCI_OPEN_PARMS OpenParm; int Handle = 0; OpenParm.dwCallback = 0; OpenParm.lpstrDeviceType = "CDAudio"; OpenParm.lpstrElementName = Drive;reszta jak była ;)
no...prawie, ale wyświetla się ...
[Linker error] undefined reference to `mciSendCommandA@16'
////
Linkuj z biblioteką winmm.lib [winmm.a w Dev-C++] - tam są wszystkie funkcje dot. MCI...
... przynajmniej As Far As I Recall...
Ojej, jak dawno tu nic nie postowałem :)
Pozdrawiam,
TeMPOraL.
hmmm... znalazłem tylko coś takiego jak libwinmm.a wiec zapisałem
#include <libwinmm.a>
ale wyskakuje no such file or directory, a plik w katalogu dev/lib jest...
#include <libwinmm.a>

Heh... Jakby to powiedzieć... napisałem
#include <winmm.a> i nie mogł znaleźć pliku lub folderu... szare komórki zadziałały i postanowiłem wyszkuać taki, bądź podobny plik ... znalazło w lib/ plik o nazwie libwinmm.a , więc może dlatego tak napisałem?? :P
A po co inkludujesz winmm? Zrób tak: menu Project -> Project Options -> Parameters -> Add Library or Object, znajdujesz plik "libwinmm.a" [jest w \lib] i tyle ;)
A ja ci napisze jak to zrobić w WINAPI :].
dodajesz do kodu #include <mmystem.h>
Potem tworzysz w projekcie przycieks który porgramuejsz nastepujaco
MCI_OPEN_PARM OpenParm; MCI_SET_PARMS SetParm; MCIDEVICEID dID; OpenParm.lpstrDeviceType = "CDAudio"; mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE, (DWORD_PTR)&OpenParm); dID = OpenParm.wDeviceID; mciSendCommand(dID, MCI_SET, MCI_SET_DOOR_OPEN, (DWORS_PTR)&SetParm); mciSendCommand(dID, MCI_CLOSE, MCI_NOTIFY, (DWORD_PTR)&SetParm);
Jeśli checsz zamknac tacke to zamiast MCI_SET_DOOR_OPEN piszesz MCI_SET_DOOR_CLOSED.
Polecam uzywanie WINAPI gdyż korzystanie z niego zmniejsza rozmiar programu :].
Dobra, a więc kod wyglada tak:
#include <iostream>
#include <stdlib.h>
#include <mmsystem.h>
void OpenCloseCD(char* Drive, bool OpenCD)
{
MCI_OPEN_PARMS OpenParm;
int Handle = 0;
OpenParm.dwCallback = 0;
OpenParm.lpstrDeviceType = "CDAudio";
OpenParm.lpstrElementName = Drive ;
OpenParm.dwCallback = Handle;
if (OpenCD)
{
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (int) &OpenParm);
mciSendCommand(OpenParm.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
} else {
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (int) &OpenParm);
mciSendCommand(OpenParm.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
}
mciSendCommand(OpenParm.wDeviceID, MCI_CLOSE, MCI_NOTIFY, (int) &OpenParm);
}
no i dodałem lib winmm tak jak kolega wyzej napisał...
wyskakuje następujacy błąd...
[Linker error] undefined reference to `WinMain@16'
co to może być i jak to można naprawić??
wyskakuje następujacy błąd...
[Linker error] undefined reference to `WinMain@16'
co to może być i jak to można naprawić?? A gdzie maszint main() { }?
Używaj znacznika [CODE][/CODE ]
Użytkownik Cyrkiel edytował ten post 10 październik 2005, 15:31
mimo to wyskakuje
[Linker error] undefined reference to `mciSendCommandA@16'
:/
Doszedłem.. do tego... i działa
#include <mmsystem.h>
mciSendString("Set cdaudio door open wait", NULL, 0, NULL); // Wysunięcie
mciSendString("Set cdaudio door closed wait", NULL, 0, NULL); // Wsunięcie
po dołączeniu do kompilatora bibliteki winmm.lib :)
Doszedłem.. do tego... i działa
#include <mmsystem.h>
mciSendString("Set cdaudio door open wait", NULL, 0, NULL); // Wysunięcie
mciSendString("Set cdaudio door closed wait", NULL, 0, NULL); // Wsunięcie
po dołączeniu do kompilatora bibliteki winmm.lib :)

Tak spoko ale mi takie cos nie dziala. pokazuje mi bledyw pliku mmsystem.h. niech mi ktos pomoze
#include <windows.h>
popiel_kam juz wyslalem ci pw. trzeba dodac do parametru projektu bibioteke libwinmm.a