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


Anmelden zum Antworten