Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
January 27, 2009 Moving from C to D | ||||
---|---|---|---|---|
| ||||
im trying to convert my code from c to d and i have a question, how would i convert this line void notify ( struct dev_notify * ); thank you in advance |
January 27, 2009 Re: Moving from C to D | ||||
---|---|---|---|---|
| ||||
Posted in reply to bob | sorry i copy wrong line. how do i do this line:
int PASCAL FAR mycnt ( IN SOCKET s, IN const struct sockaddr FAR *name, IN int namelen );
bob Wrote:
> im trying to convert my code from c to d and i have a question, how would i convert this line
>
> void notify ( struct dev_notify * );
>
> thank you in advance
|
January 27, 2009 Re: Moving from C to D | ||||
---|---|---|---|---|
| ||||
Posted in reply to bob | Reply to bob, > sorry i copy wrong line. how do i do this line: > > int PASCAL FAR mycnt ( IN SOCKET s, IN const struct sockaddr FAR *name, IN int namelen ); > > bob Wrote: > step 1 would be get the output from the preprocessor and take a look at it. I'm guessing that PASCAL, FAR and IN are macros step 0 is try htod: http://www.digitalmars.com/d/1.0/htod.html |
January 28, 2009 Re: Moving from C to D | ||||
---|---|---|---|---|
| ||||
Posted in reply to BCS | BCS wrote:
> Reply to bob,
>
>> sorry i copy wrong line. how do i do this line:
>>
>> int PASCAL FAR mycnt ( IN SOCKET s, IN const struct sockaddr FAR *name,
> IN int namelen );
>>
>> bob Wrote:
>>
>
> step 1 would be get the output from the preprocessor and take a look at it. I'm guessing that PASCAL, FAR and IN are macros
>
> step 0 is try htod: http://www.digitalmars.com/d/1.0/htod.html
>
>
I think
int PASCAL FAR mycnt()
becomes :
extern (Pascal) int mycnt()
The FAR* thingy seems to be a 16 bit relict...
Guess the IN is not nessesary in D..., not sure though
Bjoern
|
January 28, 2009 Re: Moving from C to D | ||||
---|---|---|---|---|
| ||||
Posted in reply to BLS | do IN become in maybe?
BLS Wrote:
> BCS wrote:
> > Reply to bob,
> >
> >> sorry i copy wrong line. how do i do this line:
> >>
> >> int PASCAL FAR mycnt ( IN SOCKET s, IN const struct sockaddr FAR *name,
> > IN int namelen );
> >>
> >> bob Wrote:
> >>
> >
> > step 1 would be get the output from the preprocessor and take a look at it. I'm guessing that PASCAL, FAR and IN are macros
> >
> > step 0 is try htod: http://www.digitalmars.com/d/1.0/htod.html
> >
> >
>
> I think
> int PASCAL FAR mycnt()
> becomes :
> extern (Pascal) int mycnt()
>
> The FAR* thingy seems to be a 16 bit relict...
>
> Guess the IN is not nessesary in D..., not sure though
>
> Bjoern
|
January 28, 2009 Re: Moving from C to D | ||||
---|---|---|---|---|
| ||||
Posted in reply to bob |
bob wrote:
> do IN become in maybe?
>
> BLS Wrote:
>
>> BCS wrote:
>>> Reply to bob,
>>>
>>>> sorry i copy wrong line. how do i do this line:
>>>>
>>>> int PASCAL FAR mycnt ( IN SOCKET s, IN const struct sockaddr FAR *name,
>>> IN int namelen );
>>>> bob Wrote:
>>>>
>>> step 1 would be get the output from the preprocessor and take a look at it. I'm guessing that PASCAL, FAR and IN are macros
>>>
>>> step 0 is try htod: http://www.digitalmars.com/d/1.0/htod.html
>>>
>>>
>> I think
>> int PASCAL FAR mycnt()
>> becomes :
>> extern (Pascal) int mycnt()
>>
>> The FAR* thingy seems to be a 16 bit relict...
>>
>> Guess the IN is not nessesary in D..., not sure though
>>
>> Bjoern
>
"in" means "pass argument by value," and is the default for arguments.
Also, I believe that PASCAL is the same as the Windows cc, so my guess at the conversion would be:
For D 1.x:
extern(Windows) int mycnt ( SOCKET s, sockaddr* name, int namelen );
For D 2.x:
extern(Windows) int mycnt ( SOCKET s, const sockaddr* name, int namelen );
Note that you'd have to supply definitions of SOCKET and sockaddr.
-- Daniel
|
January 28, 2009 Re: Moving from C to D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Daniel Keep | Daniel Keep wrote: > > bob wrote: >> do IN become in maybe? >> >> BLS Wrote: >> >>> BCS wrote: >>>> Reply to bob, >>>> >>>>> sorry i copy wrong line. how do i do this line: >>>>> >>>>> int PASCAL FAR mycnt ( IN SOCKET s, IN const struct sockaddr FAR *name, >>>> IN int namelen ); >>>>> bob Wrote: >>>>> >>>> step 1 would be get the output from the preprocessor and take a look at it. I'm guessing that PASCAL, FAR and IN are macros >>>> >>>> step 0 is try htod: http://www.digitalmars.com/d/1.0/htod.html >>>> >>>> >>> I think >>> int PASCAL FAR mycnt() >>> becomes : >>> extern (Pascal) int mycnt() >>> >>> The FAR* thingy seems to be a 16 bit relict... >>> >>> Guess the IN is not nessesary in D..., not sure though >>> >>> Bjoern > > "in" means "pass argument by value," and is the default for arguments. > > Also, I believe that PASCAL is the same as the Windows cc, so my guess > at the conversion would be: > > For D 1.x: > > extern(Windows) int mycnt ( SOCKET s, sockaddr* name, int namelen ); > > For D 2.x: > > extern(Windows) int mycnt ( SOCKET s, const sockaddr* name, int namelen ); > > Note that you'd have to supply definitions of SOCKET and sockaddr. > > -- Daniel I am pretty sure that PASCAL means __pascal so the D1 translation is : extern (Pascal) int mycnt ( SOCKET s, sockaddr* name, int namelen ); See :http://www.digitalmars.com/d/1.0/htomodule.html at the bottom Bjoern |
January 28, 2009 Re: Moving from C to D | ||||
---|---|---|---|---|
| ||||
Posted in reply to BLS |
BLS wrote:
> Daniel Keep wrote:
>> [snip]
>>
>> Also, I believe that PASCAL is the same as the Windows cc, so my guess at the conversion would be:
>>
>> For D 1.x:
>>
>> extern(Windows) int mycnt ( SOCKET s, sockaddr* name, int namelen );
>>
>> For D 2.x:
>>
>> extern(Windows) int mycnt ( SOCKET s, const sockaddr* name, int
>> namelen );
>>
>> Note that you'd have to supply definitions of SOCKET and sockaddr.
>>
>> -- Daniel
>
> I am pretty sure that PASCAL means __pascal
>
> so the D1 translation is :
> extern (Pascal) int mycnt ( SOCKET s, sockaddr* name, int namelen );
>
> See :http://www.digitalmars.com/d/1.0/htomodule.html at the bottom
>
> Bjoern
Aah yes; I didn't realise Pascal was defined; I thought it was limited to C, D, Windows and System for D1, adding C++ for D2.
-- Daniel
|
Copyright © 1999-2021 by the D Language Foundation