snn.lib , setmode and linker errors

Derek Parnell derek at nomail.afraid.org
Tue Mar 20 18:11:50 PDT 2007


On Tue, 20 Mar 2007 19:53:28 -0500, Charlie wrote:

> Hi,
> 
> Im trying to write a CGI lib in D, and it requires stdin be put in 
> binaru mode for windows, which is done with setmode(), declared in io.h 
> and is in snn.lib.  Here is the code:
> 
> import std.c.stdio;
> 
> void main ()
> {
> 
>    version ( Windows )
>      {
>        int O_BINARY = 0x8000;
>        extern ( C ) int setmode(int,int);
>        setmode(stdin._file ,O_BINARY);
>      }
> 
> }
> 
> And the error:
> 
> stest.obj(stest)
>   Error 42: Symbol Undefined __D5stest4mainFZv7setmodeMUiiZi
> --- errorlevel 1
> 
> Im explictly linking to snn.lib ( is that needed ? ) , why is it still 
> undefined ?
> 
> Thanks,
> Charlie

Move the 'extern(C)' declaration out of the main() function.

 import std.c.stdio;
 version ( Windows ) extern ( C ) int setmode(int,int);

 void main ()
 {
   version ( Windows )
     {
       int O_BINARY = 0x8000;
       setmode(stdin._file ,O_BINARY);
     }
 }
-- 
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Justice for David Hicks!"
21/03/2007 12:10:30 PM


More information about the Digitalmars-d-learn mailing list