Moving from C to D
Daniel Keep
daniel.keep.lists at gmail.com
Wed Jan 28 03:41:28 PST 2009
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
More information about the Digitalmars-d-learn
mailing list