From ccl@www.ccl.net  Thu Jul 24 11:19:02 1997
Received: from bedrock.ccl.net  for ccl@www.ccl.net
	by www.ccl.net (8.8.3/950822.1) id KAA26101; Thu, 24 Jul 1997 10:39:34 -0400 (EDT)
Received: from cicerone.uunet.ca  for 45803892@prodigy.com
	by bedrock.ccl.net (8.8.6/950822.1) id KAA28433; Thu, 24 Jul 1997 10:39:32 -0400 (EDT)
From: <45803892@prodigy.com>
Received: from mail.uunet.ca ([206.175.106.156]) by mail.uunet.ca with SMTP id <116465-21961>; Thu, 24 Jul 1997 10:34:53 -0400
Received: from dfgdfg@baraj.com by 78283490@mrtger.com (8.8.5/8.6.5) with SMTP id GAA09225 for <82374hrfosdrf98379458>; Tue, 24 Jun 1997 02:02:12 -0600 (EST)
Date: Tue, 24 Jun 1997 03:02:12 -0400
To: 82374hrfosdrf98379458@uunet.ca
Subject: toner
Message-ID: <rterte3tr>
X-PMFLAGS: 90834hansdgf90sd8-54
X-UIDL: js9dft8954has8r7t038h4
Comments: Authenticated sender is <89278938@mortctr.com>








(FOR ALL YOUR PRINTER/COPIER/FAX SUPPLIES)


BENCHMARK PRINT SUPPLY
5579-B Chamblee Dunwoody Rd  #371
Atlanta GA 30338
(770)512-0083

PRINTER SUPPLIES SPECIALS FOR THE MONTH OF JULY;
New toner cartridge prices as follows:

HEWLETT PACKARD
Series 2,3=$59   
Series 2P=$54
Series 4,4M,4 Plus =$79
Series 3SI/4SI=$85
Series 4L=$54
Series 5L=$50
Series 5P=$79  
Series 4V=$100
Series 5SI= $145 
Fax  FX1/FX2=$59
Deskjet/Inkjet= $21


IBM/LEXMARK: 
Optra 4019/4029/4039=$125

EPSON: 
Models  7000/1500=$100 
CANON FAX/PC'S:  
Fax 700,770,5000,7000=$59
PC Copier 6re/7/11=$69 
PC Copier 320/740=$79 


PLEASE CALL FOR OTHER PRINTER/FAX/COPIER/COMPUTER  SUPPLIES NOT
LISTED ABOVE

- VISA/MASTERCARD/AMEX CARDS WELCOME - CORPORATE ACCOUNTS AVAILABLE W/APPROVED CREDIT- OFFICE HOURS ARE 10-6 EST

IF YOU'RE GETTING YOUR TONER CHEEPER  THAN OURS WE OFFER
YOU A 10% DISCOUNT OFF OF WHAT YOU'RE PAYING.

ASK FOR OUR FREE CATALOG. WE CARRY THE LARGEST SELECTION OF
PRINTER/FAX/COPIER/COMPUTER SUPPLIES AVAILABLE.

ORDER FROM  BENCHMARK PRINT SUPPLY ONE OF THE LARGEST 
DISTRIBUTERS OF FAX/PRINTER/COPIER SUPPLIES WITH UNCONDITIONAL
1 YEAR WARRANTY ON ALL PRODUCTS .

TO BE REMOVED FROM OUR LIST CLICK ON BLUE BELOWAND IN THE HEADER TYPE "REMOVE".

<a href="mailto:capital@answerme.com">click here </a>
mailto:capital@answerme.com


From 45803892@prodigy.com  Thu Jul 24 11:22:50 1997
Received: from cicerone.uunet.ca  for 45803892@prodigy.com
	by www.ccl.net (8.8.3/950822.1) id KAA26108; Thu, 24 Jul 1997 10:39:43 -0400 (EDT)
From: <45803892@prodigy.com>
Received: from mail.uunet.ca ([206.175.106.156]) by mail.uunet.ca with SMTP id <116465-21961>; Thu, 24 Jul 1997 10:34:53 -0400
Received: from dfgdfg@baraj.com by 78283490@mrtger.com (8.8.5/8.6.5) with SMTP id GAA09225 for <82374hrfosdrf98379458>; Tue, 24 Jun 1997 02:02:12 -0600 (EST)
Date: Tue, 24 Jun 1997 03:02:12 -0400
To: 82374hrfosdrf98379458@uunet.ca
Subject: toner
Message-ID: <rterte3tr>
X-PMFLAGS: 90834hansdgf90sd8-54
X-UIDL: js9dft8954has8r7t038h4
Comments: Authenticated sender is <89278938@mortctr.com>








(FOR ALL YOUR PRINTER/COPIER/FAX SUPPLIES)


BENCHMARK PRINT SUPPLY
5579-B Chamblee Dunwoody Rd  #371
Atlanta GA 30338
(770)512-0083

PRINTER SUPPLIES SPECIALS FOR THE MONTH OF JULY;
New toner cartridge prices as follows:

HEWLETT PACKARD
Series 2,3=$59   
Series 2P=$54
Series 4,4M,4 Plus =$79
Series 3SI/4SI=$85
Series 4L=$54
Series 5L=$50
Series 5P=$79  
Series 4V=$100
Series 5SI= $145 
Fax  FX1/FX2=$59
Deskjet/Inkjet= $21


IBM/LEXMARK: 
Optra 4019/4029/4039=$125

EPSON: 
Models  7000/1500=$100 
CANON FAX/PC'S:  
Fax 700,770,5000,7000=$59
PC Copier 6re/7/11=$69 
PC Copier 320/740=$79 


PLEASE CALL FOR OTHER PRINTER/FAX/COPIER/COMPUTER  SUPPLIES NOT
LISTED ABOVE

- VISA/MASTERCARD/AMEX CARDS WELCOME - CORPORATE ACCOUNTS AVAILABLE W/APPROVED CREDIT- OFFICE HOURS ARE 10-6 EST

IF YOU'RE GETTING YOUR TONER CHEEPER  THAN OURS WE OFFER
YOU A 10% DISCOUNT OFF OF WHAT YOU'RE PAYING.

ASK FOR OUR FREE CATALOG. WE CARRY THE LARGEST SELECTION OF
PRINTER/FAX/COPIER/COMPUTER SUPPLIES AVAILABLE.

ORDER FROM  BENCHMARK PRINT SUPPLY ONE OF THE LARGEST 
DISTRIBUTERS OF FAX/PRINTER/COPIER SUPPLIES WITH UNCONDITIONAL
1 YEAR WARRANTY ON ALL PRODUCTS .

TO BE REMOVED FROM OUR LIST CLICK ON BLUE BELOWAND IN THE HEADER TYPE "REMOVE".

<a href="mailto:capital@answerme.com">click here </a>
mailto:capital@answerme.com


From gillies@cmcnrc.far.ruu.nl  Thu Jul 24 12:21:15 1997
Received: from cmcind.far.ruu.nl  for gillies@cmcnrc.far.ruu.nl
	by www.ccl.net (8.8.3/950822.1) id LAA26683; Thu, 24 Jul 1997 11:38:56 -0400 (EDT)
Received: from cmcnrc.far.ruu.nl by cmcind.far.ruu.nl via ESMTP (950413.SGI.8.6.12/940406.SGI)
	for <@cmcind.far.ruu.nl:chemistry@www.ccl.net> id RAA22903; Thu, 24 Jul 1997 17:35:52 +0200
Received: from cmcnrc by cmcnrc.far.ruu.nl via ESMTP (950413.SGI.8.6.12/940406.SGI)
	for <chemistry@www.ccl.net> id RAA16700; Thu, 24 Jul 1997 17:35:51 +0200
Message-Id: <199707241535.RAA16700@cmcnrc.far.ruu.nl>
To: chemistry@www.ccl.net
Reply-To: Malcolm Gillies <malcolm@vei.co.uk>
Subject: Conference Announcement: MGM EC-2
Date: Thu, 24 Jul 1997 17:35:50 +0200
From: Malcolm Gillies <gillies@cmcnrc.far.ruu.nl>


Second Electronic Molecular Graphics and Modelling Conference
*************************************************************
October 6-17, 1997

    World Wide Web:    http://www.vei.co.uk/mgmec2/
    Email:             mgmnorg@vei.co.uk

The Second Electronic Molecular Graphics and Modelling Conference
(MGM EC-2) will be held on the Internet and World Wide Web
from Oct 6-17, 1997 and will cover a broad range of disciplines
related to molecular modelling, graphics and simulation methods
and applications.

Conference subject areas are: Protein Structure; Membranes and
Membrane Proteins; Protein Folding; Modelling of In Vivo Activity;
Knowledge-based Library Design; Surface Science; Host-guest
interactions; Carbohydrates and Protein-Carbohydrate Interactions;
Enzyme Mechanisms; Conformational Sampling; Nucleic Acids; Quantum
Chemistry; Structure-based Design; Visualization; and Perspectives.

Presentations of papers or posters must be prepared in Hypertext Markup
Language (HTML) with figures in GIF or other Web-compatible formats so
that participants can view the papers via the World Wide Web (The
presentations may also include enhancements such as 3D structures,
VRML, Java, RealAudio, Quicktime movies etc.)

Authors may submit WWW presentations for non-permanent display during
the conference, or for refereed print or electonic publication in the
Journal of Molecular Graphics or the Internet Journal of Chemistry (IJC),
http://www.ijc.com/

During the conference, interaction, presentations and discussions will
take place via the Internet using a Java-based virtual conference
centre, WWW-based discussion forums and an electronic mailing list.
Before the conference, a timetable for lectures and discussion sessions
for each section will be posted.

The Conference will feature a Virtual Exhibition where exhibitors will
be able to describe the activities of their organization, display their
products and services and interact with registrants. Potential
exhibitors should contact the conference organisers.

Further information regarding the conference is available from the
conference WWW site at http://www.vei.co.uk/mgmec2/

Inquiries may also be sent by email to the conference organisers at
mgmnorg@vei.co.uk

REGISTRATION
************

If you intend to participate in MGM EC-2 please use the special
registration form accessible via http://www.vei.co.uk/mgmec2/.

In addition it is necessary to pay for registration via ordinary
means:  The conference fee will be 45 pounds sterling (75 US dollars)
with a special rate for students of 30 pounds sterling (50 US dollars).

DEADLINES AND DATES               
*******************

1) DEADLINE for receipt of ABSTRACT.

   The deadline for receipt of presentation abstracts is September 1.

2) DEADLINE for receipt of PRESENTATION

   The deadline for receipt of papers and posters is September 15.

3) Refereeing Period

   The refereeing period will commence upon completion of the conference.

Molecular Graphics & Modelling Network (MGMN) mailing list
**********************************************************

Conference-related news and announcements will be posted regularly to
the MGMN mailing list (mgmn@vei.co.uk).

If you wish to subscribe to the MGMN list send the following one line
message to mgmn-request@vei.co.uk

subscribe mgmn@vei.co.uk your_email@address

To unsubscribe send the following message:

unsubscribe mgmn@vei.co.uk your_email@address
--
Malcolm Gillies <malcolm@vei.co.uk>
Molecular Modelling Coordinator
Virtual Environments International
http://www.vei.co.uk/

From dalke@ks.uiuc.edu  Thu Jul 24 19:21:09 1997
Received: from london.ks.uiuc.edu  for dalke@ks.uiuc.edu
	by www.ccl.net (8.8.3/950822.1) id SAA28905; Thu, 24 Jul 1997 18:30:09 -0400 (EDT)
Received: from bilbao.ks.uiuc.edu by london.ks.uiuc.edu with ESMTP
	(1.37.109.20/16.2 [TBG Mods]) id AA132993410; Thu, 24 Jul 1997 17:30:10 -0500
Received: (from dalke@localhost) by bilbao.ks.uiuc.edu (940816.SGI.8.6.9/8.6.9)id RAA00613; Thu, 24 Jul 1997 17:30:04 -0500
Date: Thu, 24 Jul 1997 17:30:04 -0500
From: Andrew Dalke <dalke@ks.uiuc.edu>
Message-Id: <199707242230.RAA00613@bilbao.ks.uiuc.edu>
To: CHEMISTRY@www.ccl.net
Subject: Re: Object-oriented means for computational chemist
Cc: shenkin@still3.chem.columbia.edu



Hello,

> The issue I was trying to raise is that regardless of whether one
> wants to write the front end in C, C++ or Fortran, or anything else,
> the language definition of C++ *precludes* writing a linkable code 
> libraries in C++ if one ever wants to access the library routines 
> from another language.

  That's not quite true.  The real requirement is you need a linker
that understands how to deal with your C++ compiler .

  For instance, I can write an interface to a C++ class for C by
defining a set of exported functions (in extern "C" context) that
are compiled by C++.  (I put an example at the end of this email.)

  There will be two problems:  The implementations of 'new' and
'delete' require a special function be linked in, which you
will need via the C++ linker.
  There will also be problems if you use C++'s static variables
with class types.  All static variables are initialized at before
main() is run, so the linker has to add the code that runs the
initializations before calling main.  The standard linker doesn't
do this so here again you need to use the C++ linker (this
feature is just not possible with C or Fortran; if variables and
arrays are initialized, they are initialized to 0).

  The biggest limitation is really that I can't link my C++ library
created under one compiler with C++ generated from another.  But
then, all the code I distribute is available in source form so that
hasn't been much of a problem.


						Andrew Dalke
						dalke@ks.uiuc.edu


Here's an example of C wrapper functions for a C++ class.  There
are three files; the header file includes both the C and C++ APIs.
The file 'class.C' contains the class code and does the C-level
interface, and main.c is a driver.

This uses the 'extern "C"' feature of C++ to turn off name mangling
when compiling under C++.  

= = = = = = = = = class.h = = = = = = =
#ifdef __cplusplus
class MyClass {
  int data;
public:
  MyClass(int new_value);
  ~MyClass(void);
  int get(void);
};

#endif
 /* for the C interface; doing it this way instead of using a void * */
 /* directly lets the compiler do better type checking and keeps the */
 /* same "feel" as C++ */
typedef struct MyClass_C {
  void *class_ptr;
} MyClass_C;

#ifdef __cplusplus
extern "C" {
#endif

  MyClass_C MyClass_new(int new_value);
  void MyClass_delete(MyClass_C);
  int MyClass_get(MyClass_C);

#ifdef __cplusplus
};
#endif

= = = = = = = = = =class.C = = = = = = = = = =
#include <stdlib.h>
#include "class.h"

/* a simple int storage class */
MyClass::MyClass(int new_value) { data = new_value; }
MyClass::~MyClass(void) { data = 0; }
int MyClass::get(void) { return data; }

/* Wrappers for the C interface */
MyClass_C MyClass_new(int new_value) {
  MyClass_C tmp;
  tmp.class_ptr = new MyClass(new_value);
  return tmp;
}
void MyClass_delete(MyClass_C ref) {
  delete ((MyClass *) ref.class_ptr);
  ref.class_ptr = NULL;
}
int MyClass_get(MyClass_C ref) {
  return ((MyClass *) ref.class_ptr)->get();
}

= = = = = = = = = =main.c = = = = = =
 /* The driver code -- compile this in C! */
#include <stdio.h>
#include "class.h"
main()
{
 MyClass_C tmp = MyClass_new(5);
 printf("The value is %d.\n", MyClass_get(tmp));
 MyClass_delete(tmp);
}
= = = = = =

   Here's how I ran it (using GNU's C++ compiler, SGI's C compiler,
and GNU's C++ linker to prove nothing fishy was going on):
% g++ -c class.C
% cc -c main.c
% g++ main.o class.o
% ./a.out
The value is 5.

  So it is possible for C routines to call C++ functions and classes.

