www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Moving from C to D

reply bob <bob_d_bob gmail.com> writes:
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
Jan 27 2009
parent reply bob <bob_d_bob gmail.com> writes:
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
Jan 27 2009
parent reply BCS <ao pathlink.com> writes:
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
Jan 27 2009
parent reply BLS <windevguy hotmail.de> writes:
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
Jan 28 2009
parent reply bob <blah blah.com> writes:
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
Jan 28 2009
parent reply Daniel Keep <daniel.keep.lists gmail.com> writes:
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
Jan 28 2009
parent reply BLS <windevguy hotmail.de> writes:
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
Jan 28 2009
parent Daniel Keep <daniel.keep.lists gmail.com> writes:
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
Jan 28 2009