Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2006-04

how to pass PChar (or any pointer) from Delphi to FPC ?

6 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Пётр Косаревский

I can transfer information from Delphi program to FPC, but they have different memory managers or something, so pointers are the same numbers, but different physical addressed. It doesn't sound extraordinary, so, please, help with example or anything!

Jonas Maebe
to Пётр Косаревский
Пётр Косаревский wrote 5 lines
I can transfer information from Delphi program to FPC, but they have different memory managers or something, so pointers are the same numbers, but different physical addressed. It doesn't sound extraordinary, so, please, help with example or anything!

How do you transfer these pointers and what are you trying to accomplish? You generally cannot transfer pointers from one running program to another. It may work by accident in some cases, but it is not something you can rely on (even if both programs are compiled by the same version of the same compiler on the same OS and are running on the same machine).

Jonas

Пётр Косаревский

This message was by an error sent to Jonas Maebe privately. Addendum1: implementing DDE, OLE etcetera is not that easy in this case, because requires dummy window not only under FPC, but even under Delphi (modifying message loops of control elements like the main window of the main form in Delphi is not that easy too). Addendum2: there was good post on message loops here http://lists.freepascal.org/lists/fpc-pascal/2002-August/003764.html

Show quoted text 15 lines
> On 4 apr 2006, at 10:48, Пётр Косаревский wrote: > > I can transfer information from Delphi program to FPC, but they > > have different memory managers or something, so pointers are the > > same numbers, but different physical addressed. > How do you transfer these pointers and what are you trying to > accomplish? You generally cannot transfer pointers from one running > program to another. It may work by accident in some cases, but it is > not something you can rely on (even if both programs are compiled by > the same version of the same compiler on the same OS and are running > on the same machine). > Jonas I transfer them as numbers. I work under win32. I transfer them as LParam-s with PostMessage() WinAPI function. Numbers are transferred correctly (I checked it with .messagebox/writeln). I try to have access to the same physical memory (I want to have common read-write variable).
Alexey Pavluchenko
to Пётр Косаревский: I can transfer information from Delphi program to FPC, but they have different memory…

Hello Пётр,

Tuesday, April 04, 2006, 11:48:33 AM, you wrote:

ПК> I can transfer information from Delphi program to FPC, but they ПК> have different memory managers or something, so pointers are the ПК> same numbers, but different physical addressed. It doesn't sound ПК> extraordinary, so, please, help with example or anything!

Maybe the memory-mapped files will help. Look up WinAPI reference for CreateFileMapping and related functions.

Best regards, Alexey
Пётр Косаревский
to Alexey Pavluchenko
Show quoted text 7 lines
ПК> I can transfer information from Delphi program to FPC, but they ПК> have different memory managers or something, so pointers are the ПК> same numbers, but different physical addressed. It doesn't sound ПК> extraordinary, so, please, help with example or anything! Maybe the memory-mapped files will help. Look up WinAPI reference for CreateFileMapping and related functions.

Thank you, it seems to be correct way to do what I want.

Sorry for generally windows programming question in this mail list.

But what we know: maybe an unit, implementing such functionality OS independent (with Windows.CreateFileMapping under windows and something else under something other) would not be useless? But it's rather developers' question.

Felipe Monteiro de Carvalho
to Пётр Косаревский
Пётр Косаревский wrote
Sorry for generally windows programming question in this mail list. But what we know: maybe an unit, implementing such functionality OS independent (with Windows.CreateFileMapping under windows and something else under something other) would not be useless? But it's rather developers' question.

This kind of thing doesn´t need to be on the runtime library or other core parts.

You can implement it as a group of units that someone can just link to in his programs.

You just need to choose something abstract enougth to be easely implement on Windows and then on Linux. For an example of a component that does it, take a look at TrayIcon located at /components/trayicon on Lazarus.

Felipe Monteiro de Carvalho