JunkBox_Win_Lib 1.5.3
Loading...
Searching...
No Matches
WinDLLTool.h
Go to the documentation of this file.
1#pragma once
2
8#include "WinTools.h"
9
10
11//
12namespace jbxwl {
13
14
47typedef char* (*FUNC_STRING)(int);
48
49
50//
51// DLLデータを格納するためのクラス
52//
54{
55public:
56 int status; // モジュールの状態.<=0 では不正な状態.
57 int fnum; // 使用できる関数の数
58
59 char* title;
60 CString dllname; // DLL名
61 CString filename; // DLLファイル名
62 CString funcname; // 情報取得関数の名前.予め決めておく.
63
64 HMODULE hmod; // モジュールハンドラ
65
66protected:
67 FUNC_STRING pgetinfo; // 情報取得関数へのポインタ
68 void** pfunc; // 使用できる関数へのポインタ配列
69
70public:
71 DLLModule(LPCTSTR fname, int n) { init(fname, n);}
72 DLLModule() { init(NULL, 0);}
73 virtual ~DLLModule() { free();}
74
75 void init(LPCTSTR fname, int n);
76 void free();
77 char* get_info(int n=0) { if (pgetinfo==NULL) return NULL; return (*pgetinfo)(n);}
78
79 BOOL set_funcname(LPCTSTR fname, int n);
80 BOOL get_module_info(tList* lp);
81 void* get_funcptr(int n);
82
83 friend class DLLModuleTBL;
84};
85
86
87
88//
89// DLLModule の配列のクラス
90//
92{
93public:
94 int vnum; // 有効なDLLの数
95 DLLModule** dllmod; // DLLModuleポインタ配列へのポインタ
96
97 bool loaded;
98
99protected:
100 int tnum; // 読み込んだDLLの数(不正DLLを含む)
101 tList* lp; // ディレクトリから読み取った DLL情報
102 CString dirname; // DLLを探すディレクトリ名
103
104public:
105 DLLModuleTBL(LPCTSTR dirn) { init(dirn);}
106 DLLModuleTBL() { init(NULL);}
107 virtual ~DLLModuleTBL() { free();}
108
109 void init(LPCTSTR dirn=NULL);
110 void free();
111
112 BOOL load_module(LPCTSTR dirn=NULL);
113 void make_module_tbl(LPCTSTR fname, int n);
114
115protected:
116 tList* get_dir_module(LPCTSTR dirn);
117
118 virtual DLLModule* new_module(LPCTSTR fname, int n) { return new DLLModule(fname, n);}
119 virtual void set_module_function() {}
120};
121
122
123} // namespace
DLLModuleTBL(LPCTSTR dirn)
Definition WinDLLTool.h:105
void make_module_tbl(LPCTSTR fname, int n)
virtual ~DLLModuleTBL()
Definition WinDLLTool.h:107
tList * get_dir_module(LPCTSTR dirn)
BOOL load_module(LPCTSTR dirn=NULL)
virtual void set_module_function()
Definition WinDLLTool.h:119
virtual DLLModule * new_module(LPCTSTR fname, int n)
Definition WinDLLTool.h:118
DLLModule ** dllmod
Definition WinDLLTool.h:95
void init(LPCTSTR dirn=NULL)
DLLModule(LPCTSTR fname, int n)
Definition WinDLLTool.h:71
BOOL get_module_info(tList *lp)
BOOL set_funcname(LPCTSTR fname, int n)
void * get_funcptr(int n)
FUNC_STRING pgetinfo
Definition WinDLLTool.h:67
void init(LPCTSTR fname, int n)
char * get_info(int n=0)
Definition WinDLLTool.h:77
virtual ~DLLModule()
Definition WinDLLTool.h:73
char *(* FUNC_STRING)(int)
Definition WinDLLTool.h:47