| delorie.com/archives/browse.cgi | search | 
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f | 
| From: | "Anthony" <akantsel AT integra DOT rmt DOT ru> | 
| Newsgroups: | comp.os.msdos.djgpp | 
| Subject: | Problem with Allegro and DzComm | 
| Date: | Wed, 31 Mar 2004 15:17:43 +0400 | 
| Organization: | Radio-MSU NOC, Moscow State University | 
| Lines: | 82 | 
| Message-ID: | <c4e9db$228g$1@alpha2.radio-msu.net> | 
| NNTP-Posting-Host: | integra.rmt.ru | 
| X-Trace: | alpha2.radio-msu.net 1080731884 67856 81.13.30.150 (31 Mar 2004 11:18:03 GMT) | 
| X-Complaints-To: | usenet AT radio-msu DOT net | 
| NNTP-Posting-Date: | Wed, 31 Mar 2004 11:18:03 +0000 (UTC) | 
| X-Priority: | 3 | 
| X-MSMail-Priority: | Normal | 
| X-Newsreader: | Microsoft Outlook Express 6.00.2600.0000 | 
| X-MimeOLE: | Produced By Microsoft MimeOLE V6.00.2600.0000 | 
| To: | djgpp AT delorie DOT com | 
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp | 
| Reply-To: | djgpp AT delorie DOT com | 
Hello!
I'm experiencing problems with Allegro 4.1.12 + DzComm 0.9.9g programming.
#include <allegro.h>
#include <dzcomm.h>
...
comm_port *port;
volatile int tick;
void tick_handler()
{
    ++tick;
}
END_OF_FUNCTION(tick_handler);
...
int main()
{
...
    LOCK_VARIABLE(tick);
    LOCK_FUNCTION(tick_handler);  // error: invalid convertion from 'void
(*)()' to 'void*'
...
}
If I comment the #include <dzcomm.h> string (and remove everything related
to dzcomm, the code compiles just fine.
What can be the case?
Also I have a small test program that uses dzcomm with no allegro. While it
is a single file, it works fine. If I split it into two files, I'm not able
to link it:
in file c306th.h:
#ifndef _CENTER_306_THERMOMETR_H_
#define _CENTER_306_THERMOMETR_H_
#include <stdexcept>
#include <dzcomm.h>
...
#endif
in file c306th.cpp:
#include "C306th.h"
...
in file thermo.cpp:
#include <iostream>
#include <iomanip>
#include "C306th.h"
...
Then
C:\DJGPP\MyProjects\Thermo>gpp -Wall C306th.cpp thermo.cpp -o
thermo.exe -ldzcom
c:/djgpp/tmp/ccId1w5b.o(.text+0x0):thermo.cpp: multiple definition of
`__dzdos_i
nstall_irq'
c:/djgpp/tmp/cctwBPwX.o(.text+0x0):C306th.cpp: first defined here
c:/djgpp/tmp/ccId1w5b.o(.text+0x1a):thermo.cpp: multiple definition of
`__dzdos_
remove_irq'
c:/djgpp/tmp/cctwBPwX.o(.text+0x1a):C306th.cpp: first defined here
c:/djgpp/tmp/ccId1w5b.o(.text+0x30):thermo.cpp: multiple definition of
`_dzdos_i
nstall_timer'
c:/djgpp/tmp/cctwBPwX.o(.text+0x30):C306th.cpp: first defined here
c:/djgpp/tmp/ccId1w5b.o(.text+0x3e):thermo.cpp: multiple definition of
`_dzdos_i
nstall_param_int'
c:/djgpp/tmp/cctwBPwX.o(.text+0x3e):C306th.cpp: first defined here
c:/djgpp/tmp/ccId1w5b.o(.text+0x5a):thermo.cpp: multiple definition of
`_dzdos_r
emove_param_int'
c:/djgpp/tmp/cctwBPwX.o(.text+0x5a):C306th.cpp: first defined here
collect2: ld returned 1 exit status
What am I doing wrong?
I would appreciate any help a lot.
Thanks.
Anthony
| webmaster | delorie software privacy | 
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |