Verder Terug Inhoud

3. Eerste Stap: Hello world

Zoals gewoonlijk zullen we beginnen met het befaamde "Hello world" programma. De broncode voor hello.nlm is beschikbaar in het nlm-samples packages. Je kunt het downloaden vanaf ftp://ftp.penguin.cz/pub/users/mhi/nlm/.

3.1 hello.c - Bronbestand


#define N_PLAT_NLM                                /* Definieer doelplatform */

#include <nwconio.h>                              /* ConsolePrintf */

int
main (int argc, char **argv)
{
  int i;

  ConsolePrintf ("\rHello world!\n\n");           /* geef weer op systeemconsole */

  ConsolePrintf("Argumenten:\n");                  /* alle argumenten */
  for (i=0;i<argc;i++)
   ConsolePrintf("argv[%u]=\"%s\"\n",i, argv[i]);

  return 0;                                       /* exit NLM */
}

3.2 hello.def - NLM header file


#
# hello.def - NLM Header definitie bestand voor nlmconv(1)
# Copyright (c) 2000 Martin Hinner <mhi@penguin.cz>
#

# definieer opstart objectbestanden
INPUT   hello.o
INPUT   /usr/nwsdk/lib/prelude.o            # clib opstartcode

# all imported functions and import lists
IMPORT @/usr/nwsdk/imports/clib.imp         # Functies in CLIB.NLM
IMPORT @/usr/nwsdk/imports/threads.imp      # Functies in THREADS.NLM

# NLM header...
OUTPUT  hello.nlm                           # uitvoerbestand
TYPE 0                                      # Gewone NLM
VERSION 1,0,0                               # Versie 1.0
COPYRIGHT "Copyright (c) 2000 Martin Hinner <mhi@penguin.cz>" # (c) ...
DESCRIPTION "Simpel 'Hello world' NLM module." # titel van nlm
SCREENNAME "Systeem Console"                 # Standaard schermnaam

MODULE CLIB,THREADS                         # vereist modules

3.3 Makefile


# makefile voor "hello world" NLM

CC = gcc
CFLAGS = -Wall -O2 -g -I/usr/nwsdk/include/ -nostdinc -fno-builtin -fpack-struct

hello.nlm:      hello.o hello.def
        nlmconv --output-target=nlm32-i386 -T hello.def

hello.o:        hello.c
        $(CC) $(CFLAGS) -c hello.c

3.4 GCC problems

Je moet de volgende argumenten aan gcc doorgeven:

3.5 Testen van de Module

Kopieer hello.nlm naar de SYS:\SYSTEM directory op je NetWare server. Typ onder de systeemconsole vervolgens "load hello.nlm". Als dit goed ging, zou je de NLM versie informatie te zien moeten krijgen, een copyright melding en "Hello world".


Verder Terug Inhoud