0

hi everyone, a friend of mine made a program that was bounded on your mac. a few days ago he released his code and i was interested so i downloaded it. i took the mac retrieving code and placed it in my own code. once all .h and everything were included i compiled but i got an error:
error C2664: 'strcpy' : cannot convert parameter 1 from 'UCHAR [16]' to 'char *'

the void looks like this

void grabmacaddr ( void )
{
	unsigned char client_macaddr[8];

	NCB Ncb;
	UCHAR uRetCode;
	LANA_ENUM   lenum;
	int      i;

	memset( &Ncb, 0, sizeof(Ncb) );
	Ncb.ncb_command = NCBENUM;
	Ncb.ncb_buffer = (UCHAR *)&lenum;
	Ncb.ncb_length = sizeof(lenum);
	uRetCode = Netbios( &Ncb );

	for(i=0; i < lenum.length ;i++)
	{
		memset( &Ncb, 0, sizeof(Ncb) );
		Ncb.ncb_command = NCBRESET;
		Ncb.ncb_lana_num = lenum.lana[i];

		uRetCode = Netbios( &Ncb );

		memset( &Ncb, 0, sizeof (Ncb) );
		Ncb.ncb_command = NCBASTAT;
		Ncb.ncb_lana_num = lenum.lana[i];

		[B]strcpy(Ncb.ncb_callname,"*               ");[/B]
		Ncb.ncb_buffer = (PUCHAR) &Adapter;
		Ncb.ncb_length = sizeof(Adapter);

		uRetCode = Netbios( &Ncb );

		if ( uRetCode == 0 )
		{
			client_macaddr[0] = Adapter.adapt.adapter_address[0];
			client_macaddr[1] = Adapter.adapt.adapter_address[1];
			client_macaddr[2] = Adapter.adapt.adapter_address[2];
			client_macaddr[3] = Adapter.adapt.adapter_address[3];
			client_macaddr[4] = Adapter.adapt.adapter_address[4];
			client_macaddr[5] = Adapter.adapt.adapter_address[5];
		}
	}
}

the part where it has that error is in bold.

can anyone help me?
thx
Daco

3
Contributors
11
Replies
12
Views
9 Years
Discussion Span
Last Post by sachin1_pangare
0

unsigned char and char are different types. ncb_callname should probably be of type char (I assume it's an array) rather than unsigned char.

0

ncb_callname is a array, forgot to mention that...
that function used to work great...

0

>that function used to work great...
So what you're trying to say is that your perfect code managed to rot. :icon_rolleyes:

0

>that function used to work great...
So what you're trying to say is that your perfect code managed to rot. :icon_rolleyes:

lol, not my function. well no clue what happend. thats why i posted. cause i have no clue what a uchar is and my googling didn't help either.

EDIT: in the original code it works but for some odd reason when adding all needed headers and code it doesn't work in mine...

0

The long and short of it is that strcpy expects a pointer to char or an array of char (which is converted to a pointer to char) as the first argument. A pointer to unsigned char doesn't count. If some other code works and yours doesn't, it means your code is doing something wrong.

0

If some other code works and yours doesn't, it means your code is doing something wrong.

which is odd as its a copy pasta lol

0

Is everything a copy paste? As in a verbatim copy?

only the void
and yes, i included all needed things (and since i dont know what to do more then needed XD)

0

Well, if you don't believe me that strcpy doesn't accept a pointer to unsigned char, I guess you're screwed. ;)

0

Well, if you don't believe me that strcpy doesn't accept a pointer to unsigned char, I guess you're screwed. ;)

i believe you lol. youre probably more a pro then me XD

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.