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
答案 0 :(得分:3)
为什么不使用此签名:
unsigned char Decrypt(char *data);
而不是
unsigned __int8 Decrypt(unsigned __int8 data[]);
如果您这样做,可以轻松地将buf
传递给它,因为即使buf
被声明为char buf[4095]
,它也会自动成为指针类型 当你把它传递给Decrypt
时。不需要施放!
答案 1 :(得分:2)
调用Decrypt时将buf强制转换为无符号__int8。
Decrypt((unsigned __int8*)buf);
答案 2 :(得分:0)
将其转换为正确的类型.....................................