Re: [fpc-pascal] Shared libries

2011-12-12 Thread noreply
On 2011-12-12 00:48, nore...@z505.com wrote: Ok, thanks for clearifying that. I guess it's going to be a lot of include files instead... :) -Torsten. Why do you need include files in your case? You can put the units in the uses clause of your library. Because it is still going to give

Re: [fpc-pascal] Shared libries

2011-12-12 Thread Jonas Maebe
On 12 Dec 2011, at 19:56, nore...@z505.com wrote: procedure proc1; stdcall; begin writeln('hello'); end; exports proc1; procedure proc2; stdcall; begin writeln('hello 2'); end; exports proc2; end. Notice how I put exports in several places... It works on win32.. It only

Re: [fpc-pascal] Shared libries

2011-12-12 Thread Torsten Bonde Christiansen
On 2011-12-12 20:04, Jonas Maebe wrote: On 12 Dec 2011, at 19:56, nore...@z505.com wrote: procedure proc1; stdcall; begin writeln('hello'); end; exports proc1; procedure proc2; stdcall; begin writeln('hello 2'); end; exports proc2; end. Notice how I put exports in several places...

Re: [fpc-pascal] Shared libries

2011-12-12 Thread Jonas Maebe
On 12 Dec 2011, at 20:17, Torsten Bonde Christiansen wrote: On 2011-12-12 20:04, Jonas Maebe wrote: It only partially works. Please see the bug report I mentioned earlier: http://bugs.freepascal.org/bug_view_advanced_page.php?bug_id=16070 Does this just mean I have to compile my library

Re: [fpc-pascal] Shared libries

2011-12-12 Thread Torsten Bonde Christiansen
Well maybe ExportAll compiler feature should be suggested? But please try this unit Unit1; {$mode objfpc}{$H+} interface procedure proc1; stdcall; procedure proc2; stdcall; implementation procedure proc1; stdcall; begin writeln('hello'); end; exports proc1; procedure proc2;

Re: [fpc-pascal] Shared libries

2011-12-12 Thread noreply
Well maybe ExportAll compiler feature should be suggested? But please try this unit Unit1; {$mode objfpc}{$H+} interface procedure proc1; stdcall; procedure proc2; stdcall; implementation procedure proc1; stdcall; begin writeln('hello'); end; exports proc1; procedure

Re: [fpc-pascal] Shared libries

2011-12-12 Thread noreply
On 12 Dec 2011, at 19:56, nore...@z505.com wrote: procedure proc1; stdcall; begin writeln('hello'); end; exports proc1; procedure proc2; stdcall; begin writeln('hello 2'); end; exports proc2; end. Notice how I put exports in several places... It works on win32.. It only

Re: [fpc-pascal] Shared libries

2011-12-12 Thread Tomas Hajny
On 12 Dec 11, at 17:17, nore...@z505.com wrote: On 12 Dec 2011, at 19:56, nore...@z505.com wrote: procedure proc1; stdcall; begin writeln('hello'); end; exports proc1; procedure proc2; stdcall; begin writeln('hello 2'); end; exports proc2; end. Notice how I put

[fpc-pascal] Shared libries

2011-12-11 Thread Torsten Bonde Christiansen
Hi. I'm trying to create a shared library (under linux) and I not sure what the difference between the modifier *export* and the section *exports* is? Or perhaps when to use one and the other... I have read both the programmers guide (7.2) and reference guide (11.9.3) but this didn't really

Re: [fpc-pascal] Shared libries

2011-12-11 Thread noreply
Hi. I'm trying to create a shared library (under linux) and I not sure what the difference between the modifier *export* and the section *exports* is? Or perhaps when to use one and the other... Just different ways of doing it. You can export each one, or you can use exports clause to do

Re: [fpc-pascal] Shared libries

2011-12-11 Thread ik
On Sun, Dec 11, 2011 at 23:35, Torsten Bonde Christiansen t...@epidata.dkwrote: Hi. I'm trying to create a shared library (under linux) and I not sure what the difference between the modifier *export* and the section *exports* is? Or perhaps when to use one and the other... export means

Re: [fpc-pascal] Shared libries

2011-12-11 Thread Torsten Bonde Christiansen
On 2011-12-11 22:57, ik wrote: On Sun, Dec 11, 2011 at 23:35, Torsten Bonde Christiansen t...@epidata.dk mailto:t...@epidata.dk wrote: Hi. I'm trying to create a shared library (under linux) and I not sure what the difference between the modifier *export* and the section

Re: [fpc-pascal] Shared libries

2011-12-11 Thread Jonas Maebe
On 11 Dec 2011, at 23:18, Torsten Bonde Christiansen wrote: So in the following example foo would not be visible (neither as foo nor bar) to other program (eg. a C-program) unless I added an *exports* section? Correct. See also

Re: [fpc-pascal] Shared libries

2011-12-11 Thread Torsten Bonde Christiansen
On 2011-12-11 23:30, Jonas Maebe wrote: On 11 Dec 2011, at 23:18, Torsten Bonde Christiansen wrote: So in the following example foo would not be visible (neither as foo nor bar) to other program (eg. a C-program) unless I added an *exports* section? Correct. See also

Re: [fpc-pascal] Shared libries

2011-12-11 Thread noreply
Ok, thanks for clearifying that. I guess it's going to be a lot of include files instead... :) -Torsten. Why do you need include files in your case? You can put the units in the uses clause of your library. library something; uses someunit; exports someunit.yourproc; end. The

Re: [fpc-pascal] Shared libries

2011-12-11 Thread Jonas Maebe
On 12 Dec 2011, at 00:48, nore...@z505.com wrote: In newer versions of FPC it allows you to put an exports clause in the unit itself, but older versions didn't allow it. http://bugs.freepascal.org/bug_view_page.php?bug_id=4398history=1 That functionality is buggy and cannot be used safely

Re: [fpc-pascal] Shared libries

2011-12-11 Thread Torsten Bonde Christiansen
On 2011-12-12 00:48, nore...@z505.com wrote: Ok, thanks for clearifying that. I guess it's going to be a lot of include files instead... :) -Torsten. Why do you need include files in your case? You can put the units in the uses clause of your library. Because it is still going to give me a