From: "Alexei A. Frounze" Newsgroups: comp.os.msdos.djgpp Subject: Re: 3rd Try: Maybe an asm problem? (Problems linking) Date: Fri, 28 Apr 2000 22:49:58 +0400 Organization: MTU-Intel ISP Lines: 57 Message-ID: <3909DD56.7BD63105@mtu-net.ru> References: <200004281112 DOT NAA29833 AT acp3bf DOT physik DOT rwth-aachen DOT de> <3909D92B DOT CC80284C AT pop DOT gis DOT net> NNTP-Posting-Host: ppp101-99.dialup.mtu-net.ru Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit X-Trace: gavrilo.mtu.ru 956949730 87795 212.188.101.99 (28 Apr 2000 19:22:10 GMT) X-Complaints-To: usenet-abuse AT mtu DOT ru NNTP-Posting-Date: 28 Apr 2000 19:22:10 GMT X-Mailer: Mozilla 4.72 [en] (Win95; I) X-Accept-Language: en,ru To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com AFAIK you should add some characters to your external ASM subroutines... These characters must represent type of passed parameters. I don't remember how exactly, but that might help you. I don't add these chracters with plane C, but parhaps they are needed for C++. -- Alexei A. Frounze ----------------------------------------- Homepage: http://alexfru.chat.ru Mirror: http://members.xoom.com/alexfru Joseph Rose wrote: > > Just before my last message, I put 'extern' before the prototypes of the asm > functions in my header. I forgot to post the header. It follows. > > ----------------------- > /* > //Header for VGADr386 library. > //Requires dpmi.h. > */ > #ifndef _VGADraw_internal > extern short VidSel; > extern __dpmi_paddr VidBuffer; > extern char TmpVidBuffer [63999]; > #endif > extern void SetGrMode (void); > extern void Draw_Line_Horiz (int X, int Y, int Len, char Col); > extern void Draw_Line_Vert (long X, long Y, short Len, char Col); > extern void Draw_Tri (long X1, long Y1, long X2, long Y2, long X3, long Y3, > char Col); > > -------------------------------- > > Hans-Bernhard Broeker wrote: > > > In article <39096460 DOT 1D069B39 AT pop DOT gis DOT net> you wrote: > > > When I link the test code for my graphics library, I get no error > > > message on references to C++ functions, but I get 'undefined reference' > > > error messages at every line of C++ code containing a function call to > > > an assembler routine. I'm using nasm; GLOBAL statements appear at the > > > beginning of the source for about every function in the source without > > > any extra specifiers, and my functions start with just a label followed > > > by a colon. Every other technique I've tried didn't assemble at all. > > > > Unless my memory fails me even more badly than usually, I've already > > answered that question, answering an earlier posting of yours: > > > > You need 'extern "C"' qualifiers in the prototypes for those > > assembly functions. > > > > -- > > Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de) > > Even if all the snow were burnt, ashes would remain.