You are facing a byte ordering problem.

s1.v1 has been initialized by PalmOS 68K so the address is stored in big
endian.
PceNativeCall does not know anything about the pointer you pass to the
native code and can't adjust pointers in it.

On the Windows native side, you need to byte swap the pointer to put it in
the windows native format before using it. You should be able to find 100 of
functions to do that, including ntohl or steal one from Palm headers...

WARNING: THIS IS NOT ENOUGH. You will also face to alignment/padding issues.
The 68K compiler will not layout structures the same way than Windows
compiler. The safest way is to manually put things in a memory area and pass
a pointer to it to Windows, read manually knowing how you stored things. Do
not rely on the compiler since they are different.

Cordially,
Regis.

------------------------------------------------------------------------
Regis NICOLAS - Engineering Director, Montpellier Site
Palm Computing Europe, a PalmSource, Inc. subsidiary
 
When the finger points to the sky, the idiot looks at the finger.


-----Original Message-----
From: Salil Gokhale [mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 13, 2002 8:31 AM
To: Palm Developer Forum
Subject: wierd problem


Hello

Has anyone tried native programming on simulator?

Now we can pass a structure of parameters to the native code as
userdata.

I want to pass a number of buffers to the code.
So I declare

struct s1
{
        long *v1;
        long *v2;
};

in my palm program.

Also I have to access this structure in my dll, so i use this
declaration.
But if i try to access *v1 in dll then simulator crashes.

If i declare it
struct s1
{
        long v1[5];
        long v2[1];
};

Then I can acess v1[0], v1[1] etc.

Does that mean I have to declare all my buffers as arrays?

But I have huge buffers so can be declared on stack.

Can anyone help?

Regards
Salil

-- 
For information on using the Palm Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to