Problem mit mciSendString!
-
Hi!
Ich bin gerade dabei ein kleines Programm zu schreiben.Aber immer wenn ich es kompilieren will kommt ein Fehler wegen eines unaufgelösten externen Zeichens:
Server.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__mciSendStringA@16
Debug/Serv.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.Ich habe auch die winmm.lib includiert.Ich habe keine Ahnung, was ich machen soll.
#include <windows.h> #include <iostream> #include <Mmsystem.h> #include <stdio.h> using namespace std; int startWinsock() { WSADATA wsa; return WSAStartup(MAKEWORD(2, 0), &wsa); }; bool DoOpenCdRom(void) { char chrRc[256]; char *ptrChrRc = &chrRc[0]; return mciSendString("Set CDAudio Door Open\0",ptrChrRc,256,NULL); } int main() { long rc; SOCKET acceptSocket; SOCKET connectedSocket; SOCKADDR_IN addr; char buf[256] = "Ich bins"; rc = startWinsock(); if(rc != 0) { cout << "Winsock konnte nicht gestartet werden" << endl; return 1; } else { cout << "Winsock wurde erfolgreich gestartet" << endl; }; acceptSocket = socket(AF_INET, SOCK_STREAM, 0); if(acceptSocket == INVALID_SOCKET) { cout << "Es konnte kein Socket erstellt werden" << endl; return 1; } else { cout << "Socket wurde erfolgreich erstellt" << endl; }; addr.sin_family = AF_INET; addr.sin_port = htons(12345); addr.sin_addr.s_addr = INADDR_ANY; rc = bind(acceptSocket, (SOCKADDR*)&addr, sizeof(SOCKADDR_IN)); if(rc == SOCKET_ERROR) { cout << "Socket konnte nicht an port gebunden werden" << endl; return 1; } else { cout << "Socket wurde erfolgreich an Port 12345 gebunden" << endl; }; rc = listen(acceptSocket, 10); if(rc == SOCKET_ERROR) { cout << "Socket konnte nicht in den listen Modus versetzt werden" << endl; } else { cout << "Socket befindet sich im listen Modus..." << endl; }; connectedSocket = accept(acceptSocket, NULL, NULL); if(connectedSocket == INVALID_SOCKET) { cout << "Es konnte keine Verbindung zu dem Socket hergestellt werden" << endl; } else { cout << "Neue Verbindung wurde akzeptiert" << endl; }; rc = recv(connectedSocket, buf, 256, 0); if(rc == SOCKET_ERROR) { cout << "Es ist ein Fehler beim empfangen der Daten aufgetreten" << endl; return 1; } else if(rc == 0) { cout << "Die Verbindung zum Client wurde unterbrochen" << endl; } else { if(buf[0] == '1') { DoOpenCdRom(); } } return 0; };
-
Ok hat sich schon erledigt.Habs gelöst.Ich hatte 2 projekte in denm Arbeitsbereich und die winmm.lib war nur im Client Projekt includiert.
-
ich frage mich, was eine socketverbindung und eine funktion zum öffnen des cdroms wohl zusammen für nen sinn ergeben? kooomisch... :p