TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Peter Fitzsimmons
from: Udo Van Den Heuvel
date: 1996-08-21 19:23:06
subject: HELP! Pascal/C/Link386 problem

*** Answering a msg posted in area PERSONAL_MAIL (Personal Mail).

Hello Peter!

 UVDH>> I'm trying to use a bit of C (Watcom) in my Pascal (VP/2) program.
 UVDH>> When I try to link this stuff by hand I get these errors:
 PF> The first obvious problem is you are trying to include two runtime
 PF> environments.  Unless you can write your C code without using any
 PF> runtime functions at all (I suspect you are using some C because you
 PF> WANT a C runtime function),

My C is not OK, my Pascal is better.
The algorithm that's written in C is (at least until now) unclear to me so
linking the C-OBJs to my Pascal is easier. (!?)

 PF> then I'd strongly suggest you put the C
 PF> code in a dll. The DLL will contain the C code, along with its
 PF> runtime. Simply "_pascal _export" the function(s) you
want the pascal
 PF> code to be able to see.

Linking worked OK.

I told VP to use C-calling style and used the Original names setting so the
symbols get 'normal' names (not unit{at}name). When I put the C-functionname
in uppercase and add a '_' in the pascal source all is OK.

AT least with the 1.12k (?) sources.
Now I took the sources of UUPC/extended 1.12p and there's a small problem:

When things are linked the symbols/functions _getdcwd and _chdrive (from
pushpop.c) are undeclared. They're not in UUPC's sources.
Should these be in some library? I use watcom 10.0 if that matters.

Please help!

Greetz,
        Udo

---
* Origin: (2:285/308.2)
SEEN-BY: 50/99 270/101 620/243 625/100 711/401 409 410 413 430 808 809 934
SEEN-BY: 711/955 712/407 515 624 628 713/888 800/1
@PATH: 285/308 32 1 280/801 270/101 712/515 711/808 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.