Sending Data over Shared Memories (MFC)

V

volker_nitschke

Hi,

I want to develop a program, that transmits several classes between two
processes. It should be built after the guidelines of the
iso/osi-reference model and work with a shared memory. At the moment I
copy all the data into a buffer, add the specific overhead and send
them to the memory. But if the data contains any strings, it adds only
the pointer and not the string itsself. How can I realize, that the
program copies the string and not the pointer into "pBuffer"? I have
already looked at serialization and streams, but it still didn't work.

Anyone knows, how to handle this problem?


The structure for the data transport looks like this:

struct SDataModule // layer 7 module
{
long commandCount; // number of elements in the buffer
char pBuffer[MAX_COUNT_BYTES]; // storage buffer
};

struct STransportModule // layer 4 module
{
long seqNumber; // a sequence number to mark each block
SDataModule data; // the data to transport
};

struct SNetworkModule // layer 3 module
{
char source[16]; // the ip from the user computer
STransportModule transport; // the data to transport
};

struct SMemoryModule // layer 1 module
{
BOOL full; // indication that the shared memory is full
SNetworkModule network; // the data to transport
};


TIA
Volker Nitschke
 
R

Robbie Hatley

(MFC question)

That's strictly Microsoft stuff. Has nothing to do with C++.

Ask HERE instead:

comp.os.ms-windows.programmer.win32 (I set followup here.)

--
Cheers,
Robbie Hatley
East Tustin, CA, USA
lone wolf intj at pac bell dot net
(put "[usenet]" in subject to bypass spam filter)
http://home.pacbell.net/earnur/
 
J

Jim Langston

Hi,

I want to develop a program, that transmits several classes between two
processes. It should be built after the guidelines of the
iso/osi-reference model and work with a shared memory. At the moment I
copy all the data into a buffer, add the specific overhead and send
them to the memory. But if the data contains any strings, it adds only
the pointer and not the string itsself. How can I realize, that the
program copies the string and not the pointer into "pBuffer"? I have
already looked at serialization and streams, but it still didn't work.

Anyone knows, how to handle this problem?


The structure for the data transport looks like this:

struct SDataModule // layer 7 module
{
long commandCount; // number of elements in the buffer
char pBuffer[MAX_COUNT_BYTES]; // storage buffer
};

struct STransportModule // layer 4 module
{
long seqNumber; // a sequence number to mark each block
SDataModule data; // the data to transport
};

struct SNetworkModule // layer 3 module
{
char source[16]; // the ip from the user computer
STransportModule transport; // the data to transport
};

struct SMemoryModule // layer 1 module
{
BOOL full; // indication that the shared memory is full
SNetworkModule network; // the data to transport
};

Those structures are interesting, but not much help without telling us what
you are trying to do with them. Nor are you showing us the structures.

Quote: "But if the data contains any strings, it adds only the pointer and
not the string itsself."

What is this "it" you are refering to? A function? A method? An
assignment?

Your answer may be as simple as how to use strncpy or memcpy or an iterator.
Or not. Show us what you are trying to do that is not working.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top