@@ -10,6 +10,8 @@ import (
1010
1111var maaAgentClient uintptr
1212
13+ const maaAgentClientName = "MaaAgentClient"
14+
1315var (
1416 MaaAgentClientCreateV2 func (identifier uintptr ) uintptr
1517 MaaAgentClientCreateTcp func (port uint16 ) uintptr
@@ -28,14 +30,32 @@ var (
2830 MaaAgentClientGetCustomActionList func (client uintptr , buffer uintptr ) bool
2931)
3032
33+ var agentClientEntries = []Entry {
34+ {& MaaAgentClientCreateV2 , "MaaAgentClientCreateV2" },
35+ {& MaaAgentClientCreateTcp , "MaaAgentClientCreateTcp" },
36+ {& MaaAgentClientDestroy , "MaaAgentClientDestroy" },
37+ {& MaaAgentClientIdentifier , "MaaAgentClientIdentifier" },
38+ {& MaaAgentClientBindResource , "MaaAgentClientBindResource" },
39+ {& MaaAgentClientRegisterResourceSink , "MaaAgentClientRegisterResourceSink" },
40+ {& MaaAgentClientRegisterControllerSink , "MaaAgentClientRegisterControllerSink" },
41+ {& MaaAgentClientRegisterTaskerSink , "MaaAgentClientRegisterTaskerSink" },
42+ {& MaaAgentClientConnect , "MaaAgentClientConnect" },
43+ {& MaaAgentClientDisconnect , "MaaAgentClientDisconnect" },
44+ {& MaaAgentClientConnected , "MaaAgentClientConnected" },
45+ {& MaaAgentClientAlive , "MaaAgentClientAlive" },
46+ {& MaaAgentClientSetTimeout , "MaaAgentClientSetTimeout" },
47+ {& MaaAgentClientGetCustomRecognitionList , "MaaAgentClientGetCustomRecognitionList" },
48+ {& MaaAgentClientGetCustomActionList , "MaaAgentClientGetCustomActionList" },
49+ }
50+
3151func initAgentClient (libDir string ) error {
3252 libName := getMaaAgentClientLibrary ()
3353 libPath := filepath .Join (libDir , libName )
3454
3555 handle , err := openLibrary (libPath )
3656 if err != nil {
3757 return & LibraryLoadError {
38- LibraryName : "MaaAgentClient" ,
58+ LibraryName : maaAgentClientName ,
3959 LibraryPath : libPath ,
4060 Err : err ,
4161 }
@@ -62,23 +82,24 @@ func getMaaAgentClientLibrary() string {
6282}
6383
6484func registerAgentClient () {
65- purego .RegisterLibFunc (& MaaAgentClientCreateV2 , maaAgentClient , "MaaAgentClientCreateV2" )
66- purego .RegisterLibFunc (& MaaAgentClientCreateTcp , maaAgentClient , "MaaAgentClientCreateTcp" )
67- purego .RegisterLibFunc (& MaaAgentClientDestroy , maaAgentClient , "MaaAgentClientDestroy" )
68- purego .RegisterLibFunc (& MaaAgentClientIdentifier , maaAgentClient , "MaaAgentClientIdentifier" )
69- purego .RegisterLibFunc (& MaaAgentClientBindResource , maaAgentClient , "MaaAgentClientBindResource" )
70- purego .RegisterLibFunc (& MaaAgentClientRegisterResourceSink , maaAgentClient , "MaaAgentClientRegisterResourceSink" )
71- purego .RegisterLibFunc (& MaaAgentClientRegisterControllerSink , maaAgentClient , "MaaAgentClientRegisterControllerSink" )
72- purego .RegisterLibFunc (& MaaAgentClientRegisterTaskerSink , maaAgentClient , "MaaAgentClientRegisterTaskerSink" )
73- purego .RegisterLibFunc (& MaaAgentClientConnect , maaAgentClient , "MaaAgentClientConnect" )
74- purego .RegisterLibFunc (& MaaAgentClientDisconnect , maaAgentClient , "MaaAgentClientDisconnect" )
75- purego .RegisterLibFunc (& MaaAgentClientConnected , maaAgentClient , "MaaAgentClientConnected" )
76- purego .RegisterLibFunc (& MaaAgentClientAlive , maaAgentClient , "MaaAgentClientAlive" )
77- purego .RegisterLibFunc (& MaaAgentClientSetTimeout , maaAgentClient , "MaaAgentClientSetTimeout" )
78- purego .RegisterLibFunc (& MaaAgentClientGetCustomRecognitionList , maaAgentClient , "MaaAgentClientGetCustomRecognitionList" )
79- purego .RegisterLibFunc (& MaaAgentClientGetCustomActionList , maaAgentClient , "MaaAgentClientGetCustomActionList" )
85+ for _ , entry := range agentClientEntries {
86+ purego .RegisterLibFunc (entry .ptrToFunc , maaAgentClient , entry .name )
87+ }
88+ }
89+
90+ func releaseAgentClient () error {
91+ err := unloadLibrary (maaAgentClient )
92+ if err != nil {
93+ return err
94+ }
95+
96+ unregisterAgentClient ()
97+
98+ return nil
8099}
81100
82- func unregisterAgentClient () error {
83- return unloadLibrary (maaAgentClient )
101+ func unregisterAgentClient () {
102+ for _ , entry := range agentClientEntries {
103+ clearFuncVar (entry .ptrToFunc )
104+ }
84105}
0 commit comments