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/.
#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 */
}
# # 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
# 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
Je moet de volgende argumenten aan gcc doorgeven:
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".