S
hi,
es geht um folgendes, ich versuche eine dll zu bauen.
in der dll werden standard-file-funktionen verwendet wie fopen, fseek, etc...
die header hab ich korrekt eingetragen (stdio.h und stdlib.h) - der compile klappt
der linker (ilink32 von borland) muckt aber: bekomme meldungen wie
//...Compiler-Output
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_fopen' referenced from C:\DOCUMENTS AND SETTINGS\AR
NO\DESKTOP\MARTIN\TEST\LC_EXAMPLE.OBJ
Error: Unresolved external '_printf' referenced from C:\DOCUMENTS AND SETTINGS\A
RNO\DESKTOP\MARTIN\TEST\LC_EXAMPLE.OBJ
Error: Unresolved external '_fseek' referenced from C:\DOCUMENTS AND SETTINGS\AR
NO\DESKTOP\MARTIN\TEST\LC_EXAMPLE.OBJ
Error: Unresolved external '__fgetc' referenced from C:\DOCUMENTS AND SETTINGS\A
RNO\DESKTOP\MARTIN\TEST\LC_EXAMPLE.OBJ
jetzt denkt ihr sicherlich, ich hab das nicht mit den entsprechenden bibliotheken verlinkt, aber doch, auch das hab ich; die dll soll heißen gdsintl2.dll..hier ein paar schnipsel aus dem makefile:
# Object files in the international example
LINK= "(BCDIR)\\bin\\tlink32"
RM= del
IMPLIB= "(BCDIR)\bin\implib"
//...unwichtig
INTL_EXAMPLE_OBJS = ld2.obj cs_example.obj cv_example.obj lc_example.obj
//...unwichtig
gdsintl2.dll: (INTL_EXAMPLE_OBJS)intl2.bind−(INTL\_EXAMPLE\_OBJS) intl2.bind
-(INTL_EXAMPLE_OBJS)intl2.bind−(RM) gdsintl2.dll
-(RM)gdsintl2.lib(RM) gdsintl2.lib
(RM)gdsintl2.lib(LINK) -m -s -Tpd -ap -c (LINKOPTS)−w−inq−L"(LINK_OPTS) -w-inq -L"(LINKOPTS)−w−inq−L"(BCDIR)\lib" \
(INTL_EXAMPLE_OBJS), gdsintl2.dll,,,intl2.bind(INTL\_EXAMPLE\_OBJS),\
gdsintl2.dll,,,intl2.bind
(INTL_EXAMPLE_OBJS), gdsintl2.dll,,,intl2.bind(IMPLIB) gdsintl2.lib gdsintl2.dll
Wenn ich "normale" Programme (also mit main-funktion) schreibe, klappt die Verlinkung perfekt; sogar ohne Bibliothekspfad beim Compileraufruf!
Bin am Verzweifeln; hab schon echt viel probiert. Weiß jemand, ob ich beim Erzeugen von dll's etwas Besonderes beachten muss, was das Linken gegen Bibliotheken anbelangt?
Danke,
Martin