Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0 
Author Message
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

In Programers Guide:

CHAPTER 12 MULTI-LANGUAGE PROGRAMMING 293
Overview
TopSpeed has both 16-bit and 32-bit (when released) C++ and Modula-2
compilers that can integrate into the Clarion for Windows environment.
Additionally, 16-bit C and Pascal compilers are also available.The 16-bit
compilers generate object code targeted at traditional Windows
installations
(3.1 and 3.11), while the 32-bit compilers generate object code for the
Windows 95 and Windows NT environments. You must be running your
development environment under a 32-bit environment to generate
applications for a 32-bit environment.

Where this copmilers?



Sat, 19 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Hello!


Date: 31 Dec 1996 00:31:26 GMT

Quote:
> Where this copmilers?

They will be available for extra charge. Also, compilers' modules
(without headers, libraries, etc.) were in CW 2.0 betas - except
Pascal compiler because Pascal is died.

Alexey Solovjev




Sat, 19 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

But where get this compiler's modules (also C++)?



Quote:
> Hello!


> Date: 31 Dec 1996 00:31:26 GMT

> > Where this copmilers?

> They will be available for extra charge. Also, compilers' modules
> (without headers, libraries, etc.) were in CW 2.0 betas - except
> Pascal compiler because Pascal is died.

> Alexey Solovjev





Sat, 19 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

But where get this compiler's modules (also C++)?



Quote:
> Hello!


> Date: 31 Dec 1996 00:31:26 GMT

> > Where this copmilers?

> They will be available for extra charge. Also, compilers' modules
> (without headers, libraries, etc.) were in CW 2.0 betas - except
> Pascal compiler because Pascal is died.

> Alexey Solovjev





Sat, 19 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Quote:

>In Programers Guide:
>TopSpeed has both 16-bit and 32-bit (when released) C++ and Modula-2
>compilers that can integrate into the Clarion for Windows environment.
>Where this copmilers?

AFAIK, TopSpeed sells those separately.

I'd like to know what they mean by "integrate into [] Clarion."



Sat, 19 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Hello!


Date: 31 Dec 1996 01:46:39 GMT

Quote:
> But where get this compiler's modules (also C++)?

Ask in Arsis.

Alexey Solovjev




Sat, 19 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

I think, what Clarion environment know about this compiler's extension, but
PE 2002 don't have modules (cw2cpp16.dll, cw2m216.dll, cw2pas16.dll).


Quote:

> >In Programers Guide:
> >TopSpeed has both 16-bit and 32-bit (when released) C++ and Modula-2
> >compilers that can integrate into the Clarion for Windows environment.

> >Where this copmilers?

> AFAIK, TopSpeed sells those separately.

> I'd like to know what they mean by "integrate into [] Clarion."



Sat, 19 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Quote:

> I think, what Clarion environment know about this compiler's extension, but
> PE 2002 don't have modules (cw2cpp16.dll, cw2m216.dll, cw2pas16.dll).



> > >In Programers Guide:
> > >TopSpeed has both 16-bit and 32-bit (when released) C++ and Modula-2
> > >compilers that can integrate into the Clarion for Windows environment.

> > >Where this copmilers?

> > AFAIK, TopSpeed sells those separately.

> > I'd like to know what they mean by "integrate into [] Clarion."

I used TopSpeed C++ for a while (appr. a $200 charge) I understand those
compilers are no priority with the TopSpeed Corporation.
However, TopSpeed C++ works fine at the 16 bit level but the version I
tested crashed several times as a 32 bit program.

With the GREAT (!) 32 bit de{*filter*} I found that:
C++32 will set all parameters backwards (this you can work around,
reverse your parameters),
C++32 insert wrong stack instructions when using Win95 API calls
(solution?).
I got a refund without any repons to my reported bugs.
Happy New Year,
Robert Linders

--
+-----------------------------------------------------+
| Robert J. Linders, The Mug Snugglers Corp.          |
| Orlando Florida, ph: 1-888-MugSnug                  |
| fax: 1-407-273-1871                                 |

+-----------------------------------------------------+



Sun, 20 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0



Quote:

> > I think, what Clarion environment know about this compiler's extension,
but
> > PE 2002 don't have modules (cw2cpp16.dll, cw2m216.dll, cw2pas16.dll).




Quote:

> > > >In Programers Guide:
> > > >TopSpeed has both 16-bit and 32-bit (when released) C++ and Modula-2
> > > >compilers that can integrate into the Clarion for Windows
environment.

> > > >Where this copmilers?

> > > AFAIK, TopSpeed sells those separately.

> > > I'd like to know what they mean by "integrate into [] Clarion."

> I used TopSpeed C++ for a while (appr. a $200 charge) I understand those
> compilers are no priority with the TopSpeed Corporation.
> However, TopSpeed C++ works fine at the 16 bit level but the version I
> tested crashed several times as a 32 bit program.

> With the GREAT (!) 32 bit de{*filter*} I found that:
> C++32 will set all parameters backwards (this you can work around,
> reverse your parameters),
> C++32 insert wrong stack instructions when using Win95 API calls
> (solution?).

Order of setting parameters and type of stack conditions maybe changed
by #pragma instruction.
Examples:

#pragma call(c_conv => on | off)
When on, this option enables the Microsoft C calling convention. In this
convention, the compiler pushes function parameters in right to left order
on
the stack and the caller pops these parameters off the stack.

- Show quoted text -

Quote:
> I got a refund without any repons to my reported bugs.
> Happy New Year,
> Robert Linders

> --
> +-----------------------------------------------------+
> | Robert J. Linders, The Mug Snugglers Corp.          |
> | Orlando Florida, ph: 1-888-MugSnug                  |
> | fax: 1-407-273-1871                                 |

> +-----------------------------------------------------+



Sun, 20 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Hello!


Date: 31 Dec 1996 22:44:24 GMT

Quote:
> I think, what Clarion environment know about this compiler's extension, but
> PE 2002 don't have modules (cw2cpp16.dll, cw2m216.dll, cw2pas16.dll).

Yes. The CW make system has all required information to use other TS
compilers if you have them. But these compilers are not distributing
as a part of CW.

Alexey Solovjev




Mon, 21 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Hello!


Date: Wed, 01 Jan 1997 12:22:19 -0500

Quote:
> I used TopSpeed C++ for a while (appr. a $200 charge) I understand those
> compilers are no priority with the TopSpeed Corporation.
> However, TopSpeed C++ works fine at the 16 bit level but the version I
> tested crashed several times as a 32 bit program.
> With the GREAT (!) 32 bit de{*filter*} I found that:
> C++32 will set all parameters backwards (this you can work around,
> reverse your parameters),  C++32 insert wrong stack instructions when
> using Win95 API calls (solution?).

Most modules of the CW 32-bit run-time library are compiled with
C++ compiler. So, your problems are not provoked by compiler. In
the 32-bit mode the order of PUSHing parameters to stack for pascal
calling convention is reverse in comparison with 16-bit mode.

See a small example:

=== CPP.CLW

   PROGRAM

   MAP
    MODULE('WIN%S%.LIB')
     lstrcpy (*CSTRING,*CSTRING),CSTRING,RAW,PROC,PASCAL,NAME('LSTRCPY')
    END
    MODULE('CPY.CPP')
     cpy (*CSTRING,*CSTRING),CSTRING,RAW,PROC,NAME('_cpy')
    END
   END

Src     CSTRING('Test for 32 bit')
Dest    CSTRING(30)

  CODE
  Dest = '*************'
  lstrcpy (Dest, Src)
  MESSAGE (Dest)

  Dest = '*************'
  cpy (Dest, Src)
  MESSAGE (Dest)

=== CPY.CPP

extern "C" {
  char * pascal lstrcpy (char *, char *);
  char *            cpy (char *, char *);

Quote:
};

char * cpy (char * _dest, char * _src)
{
  return lstrcpy (_dest, _src);

Quote:
};

=== CPY.PRJ

--
#noedit
#system win32
#model clarion dll
#pragma debug(vid=>min)
#pragma debug(line_num=>on)
#compile cpp.clw
#compile cpy.cpp
#link cpp.exe

=== Dis-assembler of lstrcpy call in CPP.CLW

        PUSH    OFFSET $SRC
        PUSH    OFFSET $DEST
        CALL    LSTRCPY

=== Dis-assembler of lstrcpy call in CPY.CPP

(* Registers settings before _cpy call:
       MOV     eax,OFFSET $DEST
       MOV     ebx,OFFSET $SRC
*)
       PUSH    ebx
       PUSH    eax
       CALL    lstrcpy

=======================

You can run this test and see that it works properly displaying
'Test for 32 bit' instead of asterisks. Also, you can see that
the order of PUSH commands is right-to-left.

Alexey Solovjev




Mon, 21 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Dear Max,

Quote:
> #pragma call(c_conv => on | off)
> When on, this option enables the Microsoft C calling convention. In this
> convention, the compiler pushes function parameters in right to left order
> on
> the stack and the caller pops these parameters off the stack.

I know, I tried this options and others (which should work the same for
16 bit and 32 bit). Keep in mind that the same program does work as a 16
bit program !
A procedure with only one parameter is all you can make (or use #ifdef
to specify 2 different parameter lists for 16/32 bits, I tried this and
that will work).
The Win-API calls with faulty stack instructions was the main reason I
quited using TopSpeed C++ as 32 bit program.

By the way, using Microsoft 32 bit C++ (version 4.0 or higher) is hardly
an improvement.
MS used the COFF object format and Topspeed/clarion the OMF object
format, and these two just won't mix !!
The CW linker will tell you "unsupported record type 21" when you link
to any object, dll or lib made with the MS compiler.
Shoot, is it so much to ask to interface to a C++ language and keep the
32 bit advantage.
Why is this only a problem to so few people ?

--
+-----------------------------------------------------+
| Robert J. Linders, The Mug Snugglers Corp.          |
| Orlando Florida, ph: 1-888-MugSnug                  |
| fax: 1-407-273-1871                                 |

+-----------------------------------------------------+



Mon, 21 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Quote:
>By the way, using Microsoft 32 bit C++ (version 4.0 or higher) is hardly
>an improvement.
>MS used the COFF object format and Topspeed/clarion the OMF object
>format, and these two just won't mix !!
>The CW linker will tell you "unsupported record type 21" when you link
>to any object, dll or lib made with the MS compiler.
>Shoot, is it so much to ask to interface to a C++ language and keep the
>32 bit advantage.
>Why is this only a problem to so few people ?

Hi Robert!  I just picked up a version of MS Visual C++ 4.0 to call CW
from C++.  Do you know if this will work?  Can 4.0 do 16-bit code, or
do I have to use 1.52?  TIA.

Catch you later!

-=> Mike Hanson, BoxSoft <=-



Fri, 25 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Mike, you want to use a CW DLL or (static) LIB from within C++ ??
I know the linker will try to convert OMF in COFF, but try it with a
small program first, let me know if you are succesfull.

Quote:

> Hi Robert!  I just picked up a version of MS Visual C++ 4.0 to call CW
> from C++.  Do you know if this will work?  Can 4.0 do 16-bit code, or
> do I have to use 1.52?  TIA.

> Catch you later!

> -=> Mike Hanson, BoxSoft <=-


--
+-----------------------------------------------------+
| Robert J. Linders, The Mug Snugglers Corp.          |
| Orlando Florida, ph: 1-888-MugSnug                  |
| fax: 1-407-273-1871                                 |

+-----------------------------------------------------+


Sun, 27 Jun 1999 03:00:00 GMT  
 Where compilers for CPP, MOD, PAS integrate into Clarion for Windows 2.0

Quote:

>Mike, you want to use a CW DLL or (static) LIB from within C++ ??
>I know the linker will try to convert OMF in COFF, but try it with a
>small program first, let me know if you are succesfull.

One of my customers has a graphing module that they've created in CW
(with a bunch of VBXs).  They've got a C++ program that they want to
enable for calls to the CW module.

Currently, the CW module is 16-bit, while the C++ stuff is 32-bit.  If
possible, he wants to keep CW in 16-bit, which meant that we are doing
DDE instead (just cold links, with the information passed through a
temporary file).

If I end up changing the CW side to 32-bit, then I'll try the linking
stuff.  If it was just a DLL incompatibility, then I could make the CW
program a LIB (no DLL).  If it's a LIB incompatibility, though, then I
would be stuck.

Catch you later!

-=> Mike Hanson, BoxSoft <=-



Thu, 01 Jul 1999 03:00:00 GMT  
 
 [ 15 post ] 

 Relevant Pages 

1. Mod/pas To C Translation

2. Clarion vs. CPP (windows.h)

3. Mod-2 and Mod-3 compiler

4. Mod-2 and Mod-3 compiler for the IBM PC and compatibles

5. Needing windows.h file for cpp compiler in CW

6. Clarion ReportWriter for Windows Version 2.0 Error.

7. Executing clarion dos exe from CW 2.0 windows?

8. Variable Image printing Clarion for Windows 2.0

9. Clarion for Windows 2.0 Release 2.0.3

10. Error in Clarion for Windows 2.0

11. CLARION FOR WINDOWS 2.0

 

 
Powered by phpBB® Forum Software