all-windows:: $(OUTPRE)kfwlogon.dll $(OUTPRE)kfwcpcc.exe
$(KFWLOGON): $(OUTPRE)kfwlogon.obj $(OUTPRE)kfwcommon.obj $(LIBRES)
- link $(DLL_LINKOPTS) -out:$@ $(OUTPRE)kfwlogon.obj $(OUTPRE)kfwcommon.obj -entry:DllEntryPoint -def:kfwlogon.def $(SYSLIBS) $(KLIB) $(CLIB) $(SCLIB) $(LIBRES)
+ link $(DLL_LINKOPTS) -out:$@ $(OUTPRE)kfwlogon.obj $(OUTPRE)kfwcommon.obj -entry:DllEntryPoint -def:kfwlogon.def $(SYSLIBS) $(KLIB) $(CLIB) $(SCLIB) ../lib/$(OUTPRE)libwin.lib $(LIBRES)
$(_VC_MANIFEST_EMBED_DLL)
$(KFWCPCC): $(OUTPRE)kfwcpcc.obj $(OUTPRE)kfwcommon.obj $(EXERES)
- link $(EXE_LINKOPTS) -out:$@ $(OUTPRE)kfwcpcc.obj $(OUTPRE)kfwcommon.obj $(SYSLIBS) $(KLIB) $(CLIB) $(SCLIB) $(EXERES)
+ link $(EXE_LINKOPTS) -out:$@ $(OUTPRE)kfwcpcc.obj $(OUTPRE)kfwcommon.obj $(SYSLIBS) $(KLIB) $(CLIB) $(SCLIB) ../lib/$(OUTPRE)libwin.lib $(EXERES)
$(_VC_MANIFEST_EMBED_EXE)
install::
}
}
-void
-UnloadFuncs(
- FUNC_INFO fi[],
- HINSTANCE h
- )
-{
- int n;
- if (fi)
- for (n = 0; fi[n].func_ptr_var; n++)
- *(fi[n].func_ptr_var) = 0;
- if (h) FreeLibrary(h);
-}
-
-int
-LoadFuncs(
- const char* dll_name,
- FUNC_INFO fi[],
- HINSTANCE* ph, // [out, optional] - DLL handle
- int* pindex, // [out, optional] - index of last func loaded (-1 if none)
- int cleanup, // cleanup function pointers and unload on error
- int go_on, // continue loading even if some functions cannot be loaded
- int silent // do not pop-up a system dialog if DLL cannot be loaded
- )
-{
- HINSTANCE h;
- int i, n, last_i;
- int error = 0;
- UINT em;
-
- if (ph) *ph = 0;
- if (pindex) *pindex = -1;
-
- for (n = 0; fi[n].func_ptr_var; n++)
- *(fi[n].func_ptr_var) = 0;
-
- if (silent)
- em = SetErrorMode(SEM_FAILCRITICALERRORS);
- h = LoadLibrary(dll_name);
- if (silent)
- SetErrorMode(em);
-
- if (!h)
- return 0;
-
- last_i = -1;
- for (i = 0; (go_on || !error) && (i < n); i++)
- {
- void* p = (void*)GetProcAddress(h, fi[i].func_name);
- if (!p)
- error = 1;
- else
- {
- last_i = i;
- *(fi[i].func_ptr_var) = p;
- }
- }
- if (pindex) *pindex = last_i;
- if (error && cleanup && !go_on) {
- for (i = 0; i < n; i++) {
- *(fi[i].func_ptr_var) = 0;
- }
- FreeLibrary(h);
- return 0;
- }
- if (ph) *ph = h;
- if (error) return 0;
- return 1;
-}
-
static HANDLE hInitMutex = NULL;
static BOOL bInit = FALSE;
extern "C" {
#endif
-void UnloadFuncs(FUNC_INFO [], HINSTANCE);
-
-int LoadFuncs(const char*, FUNC_INFO [], HINSTANCE*, int*, int, int, int);
-
void DebugEvent0(char *a);
void DebugEvent(char *b,...);
$(OUTPRE)timesync.$(OBJEXT) \
$(OUTPRE)winerr.$(OBJEXT) \
$(OUTPRE)winutil.$(OBJEXT) \
- $(OUTPRE)registry.$(OBJEXT) \
- $(OUTPRE)loadfuncs.$(OBJEXT)
+ $(OUTPRE)registry.$(OBJEXT)
#TODO: Fix resource compilation
RESFILE = $(OUTPRE)lsh_pwd.res
$(OUTPRE)$(DLL_NAME).dll: $(DEF_FILE) $(OBJS) $(XOBJS)
link $(WINDLLFLAGS) -def:$(DEF_FILE) -out:$*.dll \
- $(OBJS) $(XOBJS) $(WINLIBS) $(SCLIB)
+ $(OBJS) $(XOBJS) $(WINLIBS) ../lib/$(OUTPRE)libwin.lib $(SCLIB)
$(_VC_MANIFEST_EMBED_DLL)
#TODO: Add dependencies on include files here
lib-windows: $(OUTPRE)libwin.lib
-SRCS= vardlg.c gic.c registry.c
+SRCS= vardlg.c gic.c registry.c loadfuncs.c
+
+
+OBJS= $(OUTPRE)vardlg.obj $(OUTPRE)gic.obj $(OUTPRE)registry.obj \
+ $(OUTPRE)loadfuncs.obj
-OBJS= $(OUTPRE)vardlg.obj $(OUTPRE)gic.obj $(OUTPRE)registry.obj
$(OUTPRE)libwin.lib: $(OBJS)
lib /nologo /out:$*.lib $(OBJS)