add dynamic

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@687 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-11-13 03:34:33 +00:00
parent 5bd20cee74
commit 4df3f4658b
6 changed files with 77 additions and 6 deletions

5
BorMakefile generated
View File

@@ -66,11 +66,12 @@ clean:
del /f /q src\dialog\messagebox.obj
del /f /q src\abstract\time.obj
del /f /q src\abstract\directory.obj
del /f /q src\abstract\dynamic.obj
del /f /q src\backend\gdi.obj
del /f /q src\Mw.dll
src\Mw.dll: src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\backend\gdi.obj
$(LD) $(LDFLAGS) -e$@ src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib
src\Mw.dll: src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\abstract\dynamic.obj src\backend\gdi.obj
$(LD) $(LDFLAGS) -e$@ src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\abstract\dynamic.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib
implib src\Mw.lib src\Mw.dll
.c.obj:

5
NTMakefile generated
View File

@@ -66,11 +66,12 @@ clean:
del /f /q src\dialog\messagebox.obj
del /f /q src\abstract\time.obj
del /f /q src\abstract\directory.obj
del /f /q src\abstract\dynamic.obj
del /f /q src\backend\gdi.obj
del /f /q src\Mw.dll
src\Mw.dll: src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\backend\gdi.obj
$(LD) $(LDFLAGS) /OUT:$@ src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib
src\Mw.dll: src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\abstract\dynamic.obj src\backend\gdi.obj
$(LD) $(LDFLAGS) /OUT:$@ src\core.obj src\draw.obj src\string.obj src\text.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\icon\clock.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\cursor\arrow.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\widget\combobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\dialog\filechooser.obj src\dialog\colorpicker.obj src\dialog\messagebox.obj src\abstract\time.obj src\abstract\directory.obj src\abstract\dynamic.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib
.c.obj:

7
WatMakefile generated
View File

@@ -65,11 +65,12 @@ clean: .SYMBOLIC
%erase src/dialog/messagebox.obj
%erase src/abstract/time.obj
%erase src/abstract/directory.obj
%erase src/abstract/dynamic.obj
%erase src/backend/gdi.obj
%erase src/Mw.dll
src/Mw.dll: src/core.obj src/draw.obj src/string.obj src/text.obj src/default.obj src/lowlevel.obj src/error.obj src/unicode.obj src/color.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/directory.obj src/icon/file.obj src/icon/back.obj src/icon/forward.obj src/icon/up.obj src/icon/computer.obj src/icon/search.obj src/icon/down.obj src/icon/left.obj src/icon/right.obj src/icon/clock.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.obj src/cursor/hidden.obj src/cursor/arrow.obj src/widget/button.obj src/widget/frame.obj src/widget/opengl.obj src/widget/window.obj src/widget/menu.obj src/widget/entry.obj src/widget/submenu.obj src/widget/viewport.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/listbox.obj src/widget/numberentry.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/combobox.obj src/font/boldttf.obj src/font/ttf.obj src/font/boldfont.obj src/font/font.obj src/dialog/filechooser.obj src/dialog/colorpicker.obj src/dialog/messagebox.obj src/abstract/time.obj src/abstract/directory.obj src/backend/gdi.obj
$(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/core.obj file src/draw.obj file src/string.obj file src/text.obj file src/default.obj file src/lowlevel.obj file src/error.obj file src/unicode.obj file src/color.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/icon/info.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/error.obj file src/icon/news.obj file src/icon/directory.obj file src/icon/file.obj file src/icon/back.obj file src/icon/forward.obj file src/icon/up.obj file src/icon/computer.obj file src/icon/search.obj file src/icon/down.obj file src/icon/left.obj file src/icon/right.obj file src/icon/clock.obj file src/cursor/default.obj file src/cursor/cross.obj file src/cursor/text.obj file src/cursor/hidden.obj file src/cursor/arrow.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/opengl.obj file src/widget/window.obj file src/widget/menu.obj file src/widget/entry.obj file src/widget/submenu.obj file src/widget/viewport.obj file src/widget/image.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/numberentry.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/combobox.obj file src/font/boldttf.obj file src/font/ttf.obj file src/font/boldfont.obj file src/font/font.obj file src/dialog/filechooser.obj file src/dialog/colorpicker.obj file src/dialog/messagebox.obj file src/abstract/time.obj file src/abstract/directory.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib
src/Mw.dll: src/core.obj src/draw.obj src/string.obj src/text.obj src/default.obj src/lowlevel.obj src/error.obj src/unicode.obj src/color.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/directory.obj src/icon/file.obj src/icon/back.obj src/icon/forward.obj src/icon/up.obj src/icon/computer.obj src/icon/search.obj src/icon/down.obj src/icon/left.obj src/icon/right.obj src/icon/clock.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.obj src/cursor/hidden.obj src/cursor/arrow.obj src/widget/button.obj src/widget/frame.obj src/widget/opengl.obj src/widget/window.obj src/widget/menu.obj src/widget/entry.obj src/widget/submenu.obj src/widget/viewport.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/listbox.obj src/widget/numberentry.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/combobox.obj src/font/boldttf.obj src/font/ttf.obj src/font/boldfont.obj src/font/font.obj src/dialog/filechooser.obj src/dialog/colorpicker.obj src/dialog/messagebox.obj src/abstract/time.obj src/abstract/directory.obj src/abstract/dynamic.obj src/backend/gdi.obj
$(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/core.obj file src/draw.obj file src/string.obj file src/text.obj file src/default.obj file src/lowlevel.obj file src/error.obj file src/unicode.obj file src/color.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/icon/info.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/error.obj file src/icon/news.obj file src/icon/directory.obj file src/icon/file.obj file src/icon/back.obj file src/icon/forward.obj file src/icon/up.obj file src/icon/computer.obj file src/icon/search.obj file src/icon/down.obj file src/icon/left.obj file src/icon/right.obj file src/icon/clock.obj file src/cursor/default.obj file src/cursor/cross.obj file src/cursor/text.obj file src/cursor/hidden.obj file src/cursor/arrow.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/opengl.obj file src/widget/window.obj file src/widget/menu.obj file src/widget/entry.obj file src/widget/submenu.obj file src/widget/viewport.obj file src/widget/image.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/numberentry.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/combobox.obj file src/font/boldttf.obj file src/font/ttf.obj file src/font/boldfont.obj file src/font/font.obj file src/dialog/filechooser.obj file src/dialog/colorpicker.obj file src/dialog/messagebox.obj file src/abstract/time.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib
@@ -191,5 +192,7 @@ src/abstract/time.obj: src/abstract/time.c
$(CC) $(CFLAGS) -fo=$@ $<
src/abstract/directory.obj: src/abstract/directory.c
$(CC) $(CFLAGS) -fo=$@ $<
src/abstract/dynamic.obj: src/abstract/dynamic.c
$(CC) $(CFLAGS) -fo=$@ $<
src/backend/gdi.obj: src/backend/gdi.c
$(CC) $(CFLAGS) -fo=$@ $<

View File

@@ -0,0 +1,39 @@
/* $Id$ */
/*!
* @file Mw/Abstract/iDynamic.h
* @brief Time
*/
#ifndef __MW_ABSTRACT_DYNAMIC_H__
#define __MW_ABSTRACT_DYNAMIC_H__
#include <Mw/MachDep.h>
#ifdef __cplusplus
extern "C" {
#endif
/*!
* @brief Opens a dynamic library
* @param path Path
* @return Handle
*/
MWDECL void* MwDynamicOpen(const char* path);
/*!
* @brief Gets a symbol from the dynamic library
* @param handle Handle
* @param symbol Symbol
*/
MWDECL void* MwDynamicSymbol(void* handle, const char* symbol);
/*!
* @brief Closes a dynamic library
* @param handle Handle
*/
MWDECL void MwDynamicClose(void* handle);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -20,6 +20,7 @@
#include <Mw/Draw.h>
#include <Mw/Version.h>
#include <Mw/Abstract/Dynamic.h>
#include <Mw/Abstract/Directory.h>
#include <Mw/Abstract/Time.h>

26
src/abstract/dynamic.c Normal file
View File

@@ -0,0 +1,26 @@
/* $Id$ */
#include <Mw/Milsko.h>
void* MwDynamicOpen(const char* path) {
#ifdef _WIN32
return LoadLibrary(path);
#else
return dlopen(path, RTLD_LAZY | RTLD_LOCAL);
#endif
}
void* MwDynamicSymbol(void* handle, const char* symbol) {
#ifdef _WIN32
return GetProcAddress(handle, symbol);
#else
return dlsym(handle, symbol);
#endif
}
void MwDynamicClose(void* handle) {
#ifdef _WIN32
FreeLibrary(handle);
#else
dlclose(handle);
#endif
}