PDA

View Full Version : vc++ errore strano


torettp
20-10-2006, 00:42
ho fatto un programma in c++:


#include<windows.h>

int ris=0;
char yo[100];
void main() {
ris=mciSendString("set CDAudio door open",yo,100,0);
}


se lo compilo col compilatore borland funziona perfettamente invece se uso visual c++ mi da il seguente errore:

c:\documents and settings\luciano\documenti\visual studio 2005\projects\cde\cde\cde.h(9) : error C3861: 'mciSendString': identifier not found
Build log was saved at "file://c:\Documents and Settings\Luciano\Documenti\Visual Studio 2005\Projects\cde\cde\Debug\BuildLog.htm"
cde - 1 error(s), 0 warning(s)

da cosa dipende?

cionci
20-10-2006, 00:58
Devi includere mmsystem.h e linkare la libreria winmm

torettp
20-10-2006, 01:03
scusa l'ignoranza ma come faccio a lincare quell libreria mi fai vedere come dovrei scrivere s puoi cmq grazie x l' interessamento

cionci
20-10-2006, 01:33
In Visual C++ dipende dalla versione... Che versione hai ? In ogni caso devi andare nelle preferenze del progeto, cercare linker ed aggiungere winmm.lib...

torettp
20-10-2006, 02:10
fatto---
ora xo mi da un altro errore:

.\cde.cpp(12) : error C2664: 'mciSendStringW' : cannot convert parameter 1 from 'const char [22]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Build log was saved at "file://c:\Documents and Settings\Luciano\Documenti\Visual Studio 2005\Projects\cde\cde\Release\BuildLog.htm"
cde - 1 error(s), 0 warning(s)

cmq ho visual studio 2005

tomminno
20-10-2006, 10:17
fatto---
ora xo mi da un altro errore:

.\cde.cpp(12) : error C2664: 'mciSendStringW' : cannot convert parameter 1 from 'const char [22]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Build log was saved at "file://c:\Documents and Settings\Luciano\Documenti\Visual Studio 2005\Projects\cde\cde\Release\BuildLog.htm"
cde - 1 error(s), 0 warning(s)

cmq ho visual studio 2005

mciSendStringW utilizza Wide Char, per convertire char in widechar prova MultiByteToWideChar.

andbin
20-10-2006, 11:26
fatto---
ora xo mi da un altro errore:

.\cde.cpp(12) : error C2664: 'mciSendStringW' : cannot convert parameter 1 from 'const char [22]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Build log was saved at "file://c:\Documents and Settings\Luciano\Documenti\Visual Studio 2005\Projects\cde\cde\Release\BuildLog.htm"
cde - 1 error(s), 0 warning(s)

cmq ho visual studio 2005Il tuo progetto č impostato per compilare in "Unicode".

Fai cosė:
#define STRICT
#include <windows.h>

int main (void)
{
MCIERROR mciErr;
CHAR szRet[200];

mciErr = mciSendString ("set CDAudio door open", szRet, sizeof (szRet), NULL);

return 0;
}E vai nelle opzioni del progetto e imposta il set di caratteri a "Non impostato" (che equivale a dire il charset ANSI).

Inoltre documentati meglio sulle funzioni (su MSDN), non sparare tipi di dato a caso, mciSendString non ritorna un int ma MCIERROR.