digitalmars.D.learn - plain C to D2 const etc:
- BLS <nanali nospam.wanadoo.fr> Dec 15 2008
- "Denis Koroskin" <2korden gmail.com> Dec 15 2008
- BLS <nanali nospam.wanadoo.fr> Dec 15 2008
Hi, what is the correct way to translate this snippet into _D2_ ?
//const and cast()
void rc2_decrypt( const unsigned short xkey[64],
unsigned char *plain,
const unsigned char *cipher )
{
unsigned x76, x54, x32, x10, i;
x76 = (cipher[7] << 8) + cipher[6];
.........
many TIA, Bjoern
Dec 15 2008
On Mon, 15 Dec 2008 20:11:44 +0300, BLS <nanali nospam.wanadoo.fr> wrote:Hi, what is the correct way to translate this snippet into _D2_ ? //const and cast() void rc2_decrypt( const unsigned short xkey[64], unsigned char *plain, const unsigned char *cipher ) { unsigned x76, x54, x32, x10, i; x76 = (cipher[7] << 8) + cipher[6]; ......... many TIA, Bjoern
Here you go: void rc2_decrypt( const(ushort)[64] xkey, ubyte* plain, const(ubyte)* cipher ) { uint x76, x54, x32, x10, i; x76 = (cipher[7] << 8) + cipher[6]; // ..... } You'd better pass cipher and plain as arrays rather than pointers if their sizes are known: void rc2_decrypt( const(ushort)[64] xkey, const(ubyte)[] plain, const(ubyte)[] cipher ) { uint x76, x54, x32, x10, i; x76 = (cipher[7] << 8) + cipher[6]; // ..... }
Dec 15 2008
Denis Koroskin schrieb:On Mon, 15 Dec 2008 20:11:44 +0300, BLS <nanali nospam.wanadoo.fr> wrote:Hi, what is the correct way to translate this snippet into _D2_ ? //const and cast() void rc2_decrypt( const unsigned short xkey[64], unsigned char *plain, const unsigned char *cipher ) { unsigned x76, x54, x32, x10, i; x76 = (cipher[7] << 8) + cipher[6]; ......... many TIA, Bjoern
Here you go: void rc2_decrypt( const(ushort)[64] xkey, ubyte* plain, const(ubyte)* cipher ) { uint x76, x54, x32, x10, i; x76 = (cipher[7] << 8) + cipher[6]; // ..... } You'd better pass cipher and plain as arrays rather than pointers if their sizes are known: void rc2_decrypt( const(ushort)[64] xkey, const(ubyte)[] plain, const(ubyte)[] cipher ) { uint x76, x54, x32, x10, i; x76 = (cipher[7] << 8) + cipher[6]; // ..... }
I am afraid I am not able to use arrays 'cause I've to use the function as follows : export extern(Windows) void rc2_decrypt() in order to use it from my 4GL development-system. beside, any reason for const(ubyte)[] plain instead of ubyte[] plain ? Bjoern
Dec 15 2008








BLS <nanali nospam.wanadoo.fr>