2011-02-09 112 views
0
unsigned __int8 Decrypt(unsigned __int8 data[]); 

for(;;) 
    { 
     if((sConnect=accept(sListen,(SOCKADDR*)&addr,&addrlen)) != INVALID_SOCKET) 
     { 
      Print("Socket Connected Successfully!"); 
      char buf[4095]; 
      recv(sListen,buf,sizeof(buf),0); 
      Decrypt(buf); // Error:IntelliSense: argument of type "char *" is incompatible with parameter of type "unsigned char *" 

     } 

如何解決這個概率:-s在接受套接字連接

+1

爲什麼不聲明buf爲'unsigned __int8 [4095]`類型? – James 2011-02-09 17:37:28

回答

2

當您調用Decrypt時,將buf轉換爲未簽名的__int8。

Decrypt((unsigned __int8*)buf); 
3

你爲什麼不使用這個簽名:的

unsigned char Decrypt(char *data); 

代替

unsigned __int8 Decrypt(unsigned __int8 data[]); 

如果您這樣做,你可以很容易地通過buf它,因爲即使buf被宣佈爲char buf[4095],當你將它傳遞給Decrypt時,它將自動成爲指針類型。不需要投!

0

將其轉換爲正確類型.....................................