ďťż

Ł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
  •