├── .gitignore
├── BDSNetRunner.sln
├── BDSNetRunner
├── BDS.hpp
├── BDSNetRunner.vcxproj
├── BDSNetRunner.vcxproj.filters
├── BDSNetRunner.vcxproj.user
├── Component.h
├── Detours
│ ├── include
│ │ ├── detours.h
│ │ ├── detver.h
│ │ └── syelog.h
│ └── lib.X64
│ │ ├── detours.lib
│ │ └── syelog.lib
├── Events.h
├── GUI
│ ├── SimpleForm.cpp
│ └── SimpleForm.h
├── MCBDS插件开发助手.zip
├── RVAs.hpp
├── THook.h
├── commands
│ └── commands.h
├── cpp.hint
├── dllmain.cpp
├── framework.h
├── json
│ ├── include
│ │ └── json
│ │ │ ├── allocator.h
│ │ │ ├── assertions.h
│ │ │ ├── config.h
│ │ │ ├── forwards.h
│ │ │ ├── json.h
│ │ │ ├── json_features.h
│ │ │ ├── reader.h
│ │ │ ├── value.h
│ │ │ ├── version.h
│ │ │ └── writer.h
│ └── lib
│ │ └── jsoncpp.lib
├── mod.cpp
├── mod.h
├── pch.cpp
├── pch.h
├── scoreboard
│ ├── scoreboard.cpp
│ └── scoreboard.hpp
└── tick
│ ├── tick.cpp
│ └── tick.h
├── CSRDemo
├── BDS
│ ├── Component.cs
│ ├── Events.cs
│ ├── MCCSAPI.cs
│ └── Plugin.cs
├── C#插件开发指南.txt
├── CSRDemo.csproj
├── Hook.cs
├── Program.cs
└── Properties
│ └── AssemblyInfo.cs
├── LICENSE
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # Created by https://www.toptal.com/developers/gitignore/api/visualstudio,csharp,c++
3 | # Edit at https://www.toptal.com/developers/gitignore?templates=visualstudio,csharp,c++
4 |
5 | ### C++ ###
6 | # Prerequisites
7 | *.d
8 |
9 | # Compiled Object files
10 | *.slo
11 | *.lo
12 | *.o
13 | *.obj
14 |
15 | # Precompiled Headers
16 | *.gch
17 | *.pch
18 |
19 | # Linker files
20 | *.ilk
21 |
22 | # Debugger Files
23 | *.pdb
24 |
25 | # Compiled Dynamic libraries
26 | *.so
27 | *.dylib
28 | *.dll
29 |
30 | # Fortran module files
31 | *.mod
32 | *.smod
33 |
34 | # Compiled Static libraries
35 | *.lai
36 | *.la
37 | *.a
38 | *.lib
39 |
40 | # Executables
41 | *.exe
42 | *.out
43 | *.app
44 |
45 | ### Csharp ###
46 | ## Ignore Visual Studio temporary files, build results, and
47 | ## files generated by popular Visual Studio add-ons.
48 | ##
49 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
50 |
51 | # User-specific files
52 | *.rsuser
53 | *.suo
54 | *.user
55 | *.userosscache
56 | *.sln.docstates
57 |
58 | # User-specific files (MonoDevelop/Xamarin Studio)
59 | *.userprefs
60 |
61 | # Mono auto generated files
62 | mono_crash.*
63 |
64 | # Build results
65 | [Dd]ebug/
66 | [Dd]ebugPublic/
67 | [Rr]elease/
68 | [Rr]eleases/
69 | x64/
70 | x86/
71 | [Aa][Rr][Mm]/
72 | [Aa][Rr][Mm]64/
73 | bld/
74 | [Bb]in/
75 | [Oo]bj/
76 | [Ll]og/
77 | [Ll]ogs/
78 |
79 | # Visual Studio 2015/2017 cache/options directory
80 | .vs/
81 | # Uncomment if you have tasks that create the project's static files in wwwroot
82 | #wwwroot/
83 |
84 | # Visual Studio 2017 auto generated files
85 | Generated\ Files/
86 |
87 | # MSTest test Results
88 | [Tt]est[Rr]esult*/
89 | [Bb]uild[Ll]og.*
90 |
91 | # NUnit
92 | *.VisualState.xml
93 | TestResult.xml
94 | nunit-*.xml
95 |
96 | # Build Results of an ATL Project
97 | [Dd]ebugPS/
98 | [Rr]eleasePS/
99 | dlldata.c
100 |
101 | # Benchmark Results
102 | BenchmarkDotNet.Artifacts/
103 |
104 | # .NET Core
105 | project.lock.json
106 | project.fragment.lock.json
107 | artifacts/
108 |
109 | # StyleCop
110 | StyleCopReport.xml
111 |
112 | # Files built by Visual Studio
113 | *_i.c
114 | *_p.c
115 | *_h.h
116 | *.meta
117 | *.iobj
118 | *.ipdb
119 | *.pgc
120 | *.pgd
121 | *.rsp
122 | *.sbr
123 | *.tlb
124 | *.tli
125 | *.tlh
126 | *.tmp
127 | *.tmp_proj
128 | *_wpftmp.csproj
129 | *.log
130 | *.vspscc
131 | *.vssscc
132 | .builds
133 | *.pidb
134 | *.svclog
135 | *.scc
136 |
137 | # Chutzpah Test files
138 | _Chutzpah*
139 |
140 | # Visual C++ cache files
141 | ipch/
142 | *.aps
143 | *.ncb
144 | *.opendb
145 | *.opensdf
146 | *.sdf
147 | *.cachefile
148 | *.VC.db
149 | *.VC.VC.opendb
150 |
151 | # Visual Studio profiler
152 | *.psess
153 | *.vsp
154 | *.vspx
155 | *.sap
156 |
157 | # Visual Studio Trace Files
158 | *.e2e
159 |
160 | # TFS 2012 Local Workspace
161 | $tf/
162 |
163 | # Guidance Automation Toolkit
164 | *.gpState
165 |
166 | # ReSharper is a .NET coding add-in
167 | _ReSharper*/
168 | *.[Rr]e[Ss]harper
169 | *.DotSettings.user
170 |
171 | # TeamCity is a build add-in
172 | _TeamCity*
173 |
174 | # DotCover is a Code Coverage Tool
175 | *.dotCover
176 |
177 | # AxoCover is a Code Coverage Tool
178 | .axoCover/*
179 | !.axoCover/settings.json
180 |
181 | # Coverlet is a free, cross platform Code Coverage Tool
182 | coverage*[.json, .xml, .info]
183 |
184 | # Visual Studio code coverage results
185 | *.coverage
186 | *.coveragexml
187 |
188 | # NCrunch
189 | _NCrunch_*
190 | .*crunch*.local.xml
191 | nCrunchTemp_*
192 |
193 | # MightyMoose
194 | *.mm.*
195 | AutoTest.Net/
196 |
197 | # Web workbench (sass)
198 | .sass-cache/
199 |
200 | # Installshield output folder
201 | [Ee]xpress/
202 |
203 | # DocProject is a documentation generator add-in
204 | DocProject/buildhelp/
205 | DocProject/Help/*.HxT
206 | DocProject/Help/*.HxC
207 | DocProject/Help/*.hhc
208 | DocProject/Help/*.hhk
209 | DocProject/Help/*.hhp
210 | DocProject/Help/Html2
211 | DocProject/Help/html
212 |
213 | # Click-Once directory
214 | publish/
215 |
216 | # Publish Web Output
217 | *.[Pp]ublish.xml
218 | *.azurePubxml
219 | # Note: Comment the next line if you want to checkin your web deploy settings,
220 | # but database connection strings (with potential passwords) will be unencrypted
221 | *.pubxml
222 | *.publishproj
223 |
224 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
225 | # checkin your Azure Web App publish settings, but sensitive information contained
226 | # in these scripts will be unencrypted
227 | PublishScripts/
228 |
229 | # NuGet Packages
230 | *.nupkg
231 | # NuGet Symbol Packages
232 | *.snupkg
233 | # The packages folder can be ignored because of Package Restore
234 | **/[Pp]ackages/*
235 | # except build/, which is used as an MSBuild target.
236 | !**/[Pp]ackages/build/
237 | # Uncomment if necessary however generally it will be regenerated when needed
238 | #!**/[Pp]ackages/repositories.config
239 | # NuGet v3's project.json files produces more ignorable files
240 | *.nuget.props
241 | *.nuget.targets
242 |
243 | # Microsoft Azure Build Output
244 | csx/
245 | *.build.csdef
246 |
247 | # Microsoft Azure Emulator
248 | ecf/
249 | rcf/
250 |
251 | # Windows Store app package directories and files
252 | AppPackages/
253 | BundleArtifacts/
254 | Package.StoreAssociation.xml
255 | _pkginfo.txt
256 | *.appx
257 | *.appxbundle
258 | *.appxupload
259 |
260 | # Visual Studio cache files
261 | # files ending in .cache can be ignored
262 | *.[Cc]ache
263 | # but keep track of directories ending in .cache
264 | !?*.[Cc]ache/
265 |
266 | # Others
267 | ClientBin/
268 | ~$*
269 | *~
270 | *.dbmdl
271 | *.dbproj.schemaview
272 | *.jfm
273 | *.pfx
274 | *.publishsettings
275 | orleans.codegen.cs
276 |
277 | # Including strong name files can present a security risk
278 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
279 | #*.snk
280 |
281 | # Since there are multiple workflows, uncomment next line to ignore bower_components
282 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
283 | #bower_components/
284 |
285 | # RIA/Silverlight projects
286 | Generated_Code/
287 |
288 | # Backup & report files from converting an old project file
289 | # to a newer Visual Studio version. Backup files are not needed,
290 | # because we have git ;-)
291 | _UpgradeReport_Files/
292 | Backup*/
293 | UpgradeLog*.XML
294 | UpgradeLog*.htm
295 | ServiceFabricBackup/
296 | *.rptproj.bak
297 |
298 | # SQL Server files
299 | *.mdf
300 | *.ldf
301 | *.ndf
302 |
303 | # Business Intelligence projects
304 | *.rdl.data
305 | *.bim.layout
306 | *.bim_*.settings
307 | *.rptproj.rsuser
308 | *- [Bb]ackup.rdl
309 | *- [Bb]ackup ([0-9]).rdl
310 | *- [Bb]ackup ([0-9][0-9]).rdl
311 |
312 | # Microsoft Fakes
313 | FakesAssemblies/
314 |
315 | # GhostDoc plugin setting file
316 | *.GhostDoc.xml
317 |
318 | # Node.js Tools for Visual Studio
319 | .ntvs_analysis.dat
320 | node_modules/
321 |
322 | # Visual Studio 6 build log
323 | *.plg
324 |
325 | # Visual Studio 6 workspace options file
326 | *.opt
327 |
328 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
329 | *.vbw
330 |
331 | # Visual Studio LightSwitch build output
332 | **/*.HTMLClient/GeneratedArtifacts
333 | **/*.DesktopClient/GeneratedArtifacts
334 | **/*.DesktopClient/ModelManifest.xml
335 | **/*.Server/GeneratedArtifacts
336 | **/*.Server/ModelManifest.xml
337 | _Pvt_Extensions
338 |
339 | # Paket dependency manager
340 | .paket/paket.exe
341 | paket-files/
342 |
343 | # FAKE - F# Make
344 | .fake/
345 |
346 | # CodeRush personal settings
347 | .cr/personal
348 |
349 | # Python Tools for Visual Studio (PTVS)
350 | __pycache__/
351 | *.pyc
352 |
353 | # Cake - Uncomment if you are using it
354 | # tools/**
355 | # !tools/packages.config
356 |
357 | # Tabs Studio
358 | *.tss
359 |
360 | # Telerik's JustMock configuration file
361 | *.jmconfig
362 |
363 | # BizTalk build output
364 | *.btp.cs
365 | *.btm.cs
366 | *.odx.cs
367 | *.xsd.cs
368 |
369 | # OpenCover UI analysis results
370 | OpenCover/
371 |
372 | # Azure Stream Analytics local run output
373 | ASALocalRun/
374 |
375 | # MSBuild Binary and Structured Log
376 | *.binlog
377 |
378 | # NVidia Nsight GPU debugger configuration file
379 | *.nvuser
380 |
381 | # MFractors (Xamarin productivity tool) working folder
382 | .mfractor/
383 |
384 | # Local History for Visual Studio
385 | .localhistory/
386 |
387 | # BeatPulse healthcheck temp database
388 | healthchecksdb
389 |
390 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
391 | MigrationBackup/
392 |
393 | # Ionide (cross platform F# VS Code tools) working folder
394 | .ionide/
395 |
396 | ### VisualStudio ###
397 |
398 | # User-specific files
399 |
400 | # User-specific files (MonoDevelop/Xamarin Studio)
401 |
402 | # Mono auto generated files
403 |
404 | # Build results
405 |
406 | # Visual Studio 2015/2017 cache/options directory
407 | # Uncomment if you have tasks that create the project's static files in wwwroot
408 |
409 | # Visual Studio 2017 auto generated files
410 |
411 | # MSTest test Results
412 |
413 | # NUnit
414 |
415 | # Build Results of an ATL Project
416 |
417 | # Benchmark Results
418 |
419 | # .NET Core
420 |
421 | # StyleCop
422 |
423 | # Files built by Visual Studio
424 |
425 | # Chutzpah Test files
426 |
427 | # Visual C++ cache files
428 |
429 | # Visual Studio profiler
430 |
431 | # Visual Studio Trace Files
432 |
433 | # TFS 2012 Local Workspace
434 |
435 | # Guidance Automation Toolkit
436 |
437 | # ReSharper is a .NET coding add-in
438 |
439 | # TeamCity is a build add-in
440 |
441 | # DotCover is a Code Coverage Tool
442 |
443 | # AxoCover is a Code Coverage Tool
444 |
445 | # Coverlet is a free, cross platform Code Coverage Tool
446 |
447 | # Visual Studio code coverage results
448 |
449 | # NCrunch
450 |
451 | # MightyMoose
452 |
453 | # Web workbench (sass)
454 |
455 | # Installshield output folder
456 |
457 | # DocProject is a documentation generator add-in
458 |
459 | # Click-Once directory
460 |
461 | # Publish Web Output
462 | # Note: Comment the next line if you want to checkin your web deploy settings,
463 | # but database connection strings (with potential passwords) will be unencrypted
464 |
465 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
466 | # checkin your Azure Web App publish settings, but sensitive information contained
467 | # in these scripts will be unencrypted
468 |
469 | # NuGet Packages
470 | # NuGet Symbol Packages
471 | # The packages folder can be ignored because of Package Restore
472 | # except build/, which is used as an MSBuild target.
473 | # Uncomment if necessary however generally it will be regenerated when needed
474 | # NuGet v3's project.json files produces more ignorable files
475 |
476 | # Microsoft Azure Build Output
477 |
478 | # Microsoft Azure Emulator
479 |
480 | # Windows Store app package directories and files
481 |
482 | # Visual Studio cache files
483 | # files ending in .cache can be ignored
484 | # but keep track of directories ending in .cache
485 |
486 | # Others
487 |
488 | # Including strong name files can present a security risk
489 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
490 |
491 | # Since there are multiple workflows, uncomment next line to ignore bower_components
492 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
493 |
494 | # RIA/Silverlight projects
495 |
496 | # Backup & report files from converting an old project file
497 | # to a newer Visual Studio version. Backup files are not needed,
498 | # because we have git ;-)
499 |
500 | # SQL Server files
501 |
502 | # Business Intelligence projects
503 |
504 | # Microsoft Fakes
505 |
506 | # GhostDoc plugin setting file
507 |
508 | # Node.js Tools for Visual Studio
509 |
510 | # Visual Studio 6 build log
511 |
512 | # Visual Studio 6 workspace options file
513 |
514 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
515 |
516 | # Visual Studio LightSwitch build output
517 |
518 | # Paket dependency manager
519 |
520 | # FAKE - F# Make
521 |
522 | # CodeRush personal settings
523 |
524 | # Python Tools for Visual Studio (PTVS)
525 |
526 | # Cake - Uncomment if you are using it
527 | # tools/**
528 | # !tools/packages.config
529 |
530 | # Tabs Studio
531 |
532 | # Telerik's JustMock configuration file
533 |
534 | # BizTalk build output
535 |
536 | # OpenCover UI analysis results
537 |
538 | # Azure Stream Analytics local run output
539 |
540 | # MSBuild Binary and Structured Log
541 |
542 | # NVidia Nsight GPU debugger configuration file
543 |
544 | # MFractors (Xamarin productivity tool) working folder
545 |
546 | # Local History for Visual Studio
547 |
548 | # BeatPulse healthcheck temp database
549 |
550 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
551 |
552 | # Ionide (cross platform F# VS Code tools) working folder
553 |
554 | # End of https://www.toptal.com/developers/gitignore/api/visualstudio,csharp,c++
555 |
--------------------------------------------------------------------------------
/BDSNetRunner.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30225.117
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BDSNetRunner", "BDSNetRunner\BDSNetRunner.vcxproj", "{7A346829-4514-4FD0-ADD1-DBBA49C4EE96}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSRDemo", "CSRDemo\CSRDemo.csproj", "{95E4503B-BF15-499B-B5B2-FC0F3E425A3E}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Debug|x64 = Debug|x64
14 | Debug|x86 = Debug|x86
15 | Release|Any CPU = Release|Any CPU
16 | Release|x64 = Release|x64
17 | Release|x86 = Release|x86
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Debug|Any CPU.ActiveCfg = Debug|Win32
21 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Debug|x64.ActiveCfg = Debug|x64
22 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Debug|x64.Build.0 = Debug|x64
23 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Debug|x86.ActiveCfg = Debug|Win32
24 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Debug|x86.Build.0 = Debug|Win32
25 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Release|Any CPU.ActiveCfg = Release|Win32
26 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Release|x64.ActiveCfg = Release|x64
27 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Release|x64.Build.0 = Release|x64
28 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Release|x86.ActiveCfg = Release|Win32
29 | {7A346829-4514-4FD0-ADD1-DBBA49C4EE96}.Release|x86.Build.0 = Release|Win32
30 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
31 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
32 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Debug|x64.ActiveCfg = Debug|Any CPU
33 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Debug|x64.Build.0 = Debug|Any CPU
34 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Debug|x86.ActiveCfg = Debug|Any CPU
35 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Debug|x86.Build.0 = Debug|Any CPU
36 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
37 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Release|Any CPU.Build.0 = Release|Any CPU
38 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Release|x64.ActiveCfg = Release|Any CPU
39 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Release|x64.Build.0 = Release|Any CPU
40 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Release|x86.ActiveCfg = Release|Any CPU
41 | {95E4503B-BF15-499B-B5B2-FC0F3E425A3E}.Release|x86.Build.0 = Release|Any CPU
42 | EndGlobalSection
43 | GlobalSection(SolutionProperties) = preSolution
44 | HideSolutionNode = FALSE
45 | EndGlobalSection
46 | GlobalSection(ExtensibilityGlobals) = postSolution
47 | SolutionGuid = {E05E92C7-EFFD-4264-98EA-5203A3375294}
48 | EndGlobalSection
49 | EndGlobal
50 |
--------------------------------------------------------------------------------
/BDSNetRunner/BDS.hpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/BDS.hpp
--------------------------------------------------------------------------------
/BDSNetRunner/BDSNetRunner.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 |
22 | 16.0
23 | Win32Proj
24 | {7a346829-4514-4fd0-add1-dbba49c4ee96}
25 | NetHookDemo
26 | 10.0
27 |
28 |
29 |
30 | DynamicLibrary
31 | true
32 | v142
33 | Unicode
34 |
35 |
36 | DynamicLibrary
37 | false
38 | v142
39 | true
40 | Unicode
41 |
42 |
43 | DynamicLibrary
44 | true
45 | v142
46 | Unicode
47 |
48 |
49 | DynamicLibrary
50 | false
51 | v142
52 | true
53 | Unicode
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | true
75 |
76 |
77 | false
78 |
79 |
80 | true
81 | .\libcurl\include;$(IncludePath)
82 |
83 |
84 | false
85 | .\json\include;$(IncludePath)
86 |
87 |
88 |
89 | Level3
90 | true
91 | WIN32;_DEBUG;NETHOOKDEMO_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
92 | true
93 | Use
94 | pch.h
95 |
96 |
97 | Windows
98 | true
99 | false
100 |
101 |
102 |
103 |
104 | Level3
105 | true
106 | true
107 | true
108 | WIN32;NDEBUG;NETHOOKDEMO_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
109 | true
110 | Use
111 | pch.h
112 |
113 |
114 | Windows
115 | true
116 | true
117 | true
118 | false
119 |
120 |
121 |
122 |
123 | Level3
124 | true
125 | _DEBUG;NETHOOKDEMO_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
126 | true
127 | NotUsing
128 | pch.h
129 |
130 |
131 | Windows
132 | true
133 | false
134 |
135 |
136 |
137 |
138 | Level3
139 | true
140 | true
141 | true
142 | NDEBUG;NETHOOKDEMO_EXPORTS;_WINDOWS;_USRDLL;BUILDING_LIBCURL;%(PreprocessorDefinitions)
143 | true
144 | NotUsing
145 | pch.h
146 | MultiThreaded
147 | CompileAsCpp
148 |
149 |
150 | Windows
151 | true
152 | true
153 | true
154 | false
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 | Create
177 | Create
178 | Create
179 | Create
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
--------------------------------------------------------------------------------
/BDSNetRunner/BDSNetRunner.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 | {3c1bfc7e-9739-497e-b8cb-025341b1a393}
18 |
19 |
20 | {d1b33610-4943-45c9-9df6-065d0f961943}
21 |
22 |
23 | {4be85fce-a02a-4867-8761-7c3d9dee9d37}
24 |
25 |
26 | {e3443547-d4e7-432c-bf96-1973e43f4a80}
27 |
28 |
29 | {4955dd28-1b51-4530-9b5c-3a704d510fe1}
30 |
31 |
32 |
33 |
34 | 头文件
35 |
36 |
37 | 头文件
38 |
39 |
40 | 头文件
41 |
42 |
43 | 头文件
44 |
45 |
46 | 头文件
47 |
48 |
49 | 头文件
50 |
51 |
52 | 头文件
53 |
54 |
55 | GUI
56 |
57 |
58 | commands
59 |
60 |
61 | tick
62 |
63 |
64 | scoreboard
65 |
66 |
67 | 头文件
68 |
69 |
70 |
71 |
72 | 源文件
73 |
74 |
75 | 源文件
76 |
77 |
78 | 源文件
79 |
80 |
81 | GUI
82 |
83 |
84 | tick
85 |
86 |
87 | scoreboard
88 |
89 |
90 |
91 |
92 |
93 | 符号工具
94 |
95 |
96 |
--------------------------------------------------------------------------------
/BDSNetRunner/BDSNetRunner.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/BDSNetRunner/Component.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/Component.h
--------------------------------------------------------------------------------
/BDSNetRunner/Detours/include/detver.h:
--------------------------------------------------------------------------------
1 | //////////////////////////////////////////////////////////////////////////////
2 | //
3 | // Common version parameters.
4 | //
5 | // Microsoft Research Detours Package, Version 4.0.1
6 | //
7 | // Copyright (c) Microsoft Corporation. All rights reserved.
8 | //
9 |
10 | #define _USING_V110_SDK71_ 1
11 | #include "winver.h"
12 | #if 0
13 | #include
14 | #include
15 | #else
16 | #ifndef DETOURS_STRINGIFY
17 | #define DETOURS_STRINGIFY(x) DETOURS_STRINGIFY_(x)
18 | #define DETOURS_STRINGIFY_(x) #x
19 | #endif
20 |
21 | #define VER_FILEFLAGSMASK 0x3fL
22 | #define VER_FILEFLAGS 0x0L
23 | #define VER_FILEOS 0x00040004L
24 | #define VER_FILETYPE 0x00000002L
25 | #define VER_FILESUBTYPE 0x00000000L
26 | #endif
27 | #define VER_DETOURS_BITS DETOUR_STRINGIFY(DETOURS_BITS)
28 |
--------------------------------------------------------------------------------
/BDSNetRunner/Detours/include/syelog.h:
--------------------------------------------------------------------------------
1 | //////////////////////////////////////////////////////////////////////////////
2 | //
3 | // Detours Test Program (syelog.h of syelog.lib)
4 | //
5 | // Microsoft Research Detours Package
6 | //
7 | // Copyright (c) Microsoft Corporation. All rights reserved.
8 | //
9 | #pragma once
10 | #ifndef _SYELOGD_H_
11 | #define _SYELOGD_H_
12 | #include
13 |
14 | #pragma pack(push, 1)
15 | #pragma warning(push)
16 | #pragma warning(disable: 4200)
17 |
18 | //////////////////////////////////////////////////////////////////////////////
19 | //
20 | //
21 | #define SYELOG_PIPE_NAMEA "\\\\.\\pipe\\syelog"
22 | #define SYELOG_PIPE_NAMEW L"\\\\.\\pipe\\syelog"
23 | #ifdef UNICODE
24 | #define SYELOG_PIPE_NAME SYELOG_PIPE_NAMEW
25 | #else
26 | #define SYELOG_PIPE_NAME SYELOG_PIPE_NAMEA
27 | #endif
28 |
29 | //////////////////////////////////////////////////////////////////////////////
30 | //
31 | #define SYELOG_MAXIMUM_MESSAGE 4086 // 4096 - sizeof(header stuff)
32 |
33 | typedef struct _SYELOG_MESSAGE
34 | {
35 | USHORT nBytes;
36 | BYTE nFacility;
37 | BYTE nSeverity;
38 | DWORD nProcessId;
39 | FILETIME ftOccurance;
40 | BOOL fTerminate;
41 | CHAR szMessage[SYELOG_MAXIMUM_MESSAGE];
42 | } SYELOG_MESSAGE, *PSYELOG_MESSAGE;
43 |
44 |
45 | // Facility Codes.
46 | //
47 | #define SYELOG_FACILITY_KERNEL 0x10 // OS Kernel
48 | #define SYELOG_FACILITY_SECURITY 0x20 // OS Security
49 | #define SYELOG_FACILITY_LOGGING 0x30 // OS Logging-internal
50 | #define SYELOG_FACILITY_SERVICE 0x40 // User-mode system daemon
51 | #define SYELOG_FACILITY_APPLICATION 0x50 // User-mode application
52 | #define SYELOG_FACILITY_USER 0x60 // User self-generated.
53 | #define SYELOG_FACILITY_LOCAL0 0x70 // Locally defined.
54 | #define SYELOG_FACILITY_LOCAL1 0x71 // Locally defined.
55 | #define SYELOG_FACILITY_LOCAL2 0x72 // Locally defined.
56 | #define SYELOG_FACILITY_LOCAL3 0x73 // Locally defined.
57 | #define SYELOG_FACILITY_LOCAL4 0x74 // Locally defined.
58 | #define SYELOG_FACILITY_LOCAL5 0x75 // Locally defined.
59 | #define SYELOG_FACILITY_LOCAL6 0x76 // Locally defined.
60 | #define SYELOG_FACILITY_LOCAL7 0x77 // Locally defined.
61 | #define SYELOG_FACILITY_LOCAL8 0x78 // Locally defined.
62 | #define SYELOG_FACILITY_LOCAL9 0x79 // Locally defined.
63 |
64 | // Severity Codes.
65 | //
66 | #define SYELOG_SEVERITY_FATAL 0x00 // System is dead.
67 | #define SYELOG_SEVERITY_ALERT 0x10 // Take action immediately.
68 | #define SYELOG_SEVERITY_CRITICAL 0x20 // Critical condition.
69 | #define SYELOG_SEVERITY_ERROR 0x30 // Error
70 | #define SYELOG_SEVERITY_WARNING 0x40 // Warning
71 | #define SYELOG_SEVERITY_NOTICE 0x50 // Significant condition.
72 | #define SYELOG_SEVERITY_INFORMATION 0x60 // Informational
73 | #define SYELOG_SEVERITY_AUDIT_FAIL 0x66 // Audit Failed
74 | #define SYELOG_SEVERITY_AUDIT_PASS 0x67 // Audit Succeeeded
75 | #define SYELOG_SEVERITY_DEBUG 0x70 // Debugging
76 |
77 | // Logging Functions.
78 | //
79 | VOID SyelogOpen(PCSTR pszIdentifier, BYTE nFacility);
80 | VOID Syelog(BYTE nSeverity, PCSTR pszMsgf, ...);
81 | VOID SyelogV(BYTE nSeverity, PCSTR pszMsgf, va_list args);
82 | VOID SyelogClose(BOOL fTerminate);
83 |
84 | #pragma warning(pop)
85 | #pragma pack(pop)
86 |
87 | #endif // _SYELOGD_H_
88 | //
89 | ///////////////////////////////////////////////////////////////// End of File.
90 |
--------------------------------------------------------------------------------
/BDSNetRunner/Detours/lib.X64/detours.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/Detours/lib.X64/detours.lib
--------------------------------------------------------------------------------
/BDSNetRunner/Detours/lib.X64/syelog.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/Detours/lib.X64/syelog.lib
--------------------------------------------------------------------------------
/BDSNetRunner/Events.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/Events.h
--------------------------------------------------------------------------------
/BDSNetRunner/GUI/SimpleForm.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | std::string createSimpleFormString(std::string title, std::string content, Json::Value & bttxts) {
5 | Json::Value jv;
6 | jv["type"] = "form";
7 | jv["title"] = title;
8 | jv["content"] = content;
9 | jv["buttons"] = bttxts;
10 | return jv.toStyledString();
11 | }
12 |
13 | std::string createModalFormString(std::string title, std::string content, std::string button1, std::string button2) {
14 | Json::Value jv;
15 | jv["type"] = "modal";
16 | jv["title"] = title;
17 | jv["content"] = content;
18 | jv["button1"] = button1;
19 | jv["button2"] = button2;
20 | return jv.toStyledString();
21 | }
22 |
--------------------------------------------------------------------------------
/BDSNetRunner/GUI/SimpleForm.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/GUI/SimpleForm.h
--------------------------------------------------------------------------------
/BDSNetRunner/MCBDS插件开发助手.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/MCBDS插件开发助手.zip
--------------------------------------------------------------------------------
/BDSNetRunner/RVAs.hpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/RVAs.hpp
--------------------------------------------------------------------------------
/BDSNetRunner/THook.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhkj-liuxiaohua/BDSNetRunner/cba0ad49f2a9169e9747eda34c9dce692de6fb8d/BDSNetRunner/THook.h
--------------------------------------------------------------------------------
/BDSNetRunner/commands/commands.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 |
5 | enum class OriginType : char {
6 | Player = 0,
7 | Block = 1,
8 | MinecartBlock = 2,
9 | DevConsole = 3,
10 | Test = 4,
11 | AutomationPlayer = 5,
12 | ClientAutomation = 6,
13 | DedicatedServer = 7,
14 | Actor = 8,
15 | Virtual = 9,
16 | GameArgument = 10,
17 | ActorServer = 11
18 | };
19 |
20 | class CommandOrigin {
21 | public:
22 | CommandOrigin(CommandOrigin const&) = delete;
23 | virtual ~CommandOrigin() = 0;
24 | virtual std::string& getRequestId() const = 0;
25 | virtual std::string getName() const = 0;
26 | virtual Vec3* getBlockPosition(Vec3*) const = 0;
27 | virtual Vec3 getWorldPosition() const = 0;
28 | virtual VA getLevel() const = 0; // Level* getLevel() const
29 | virtual Dimension* getDimension() const = 0;
30 | virtual Actor* getEntity() const = 0;
31 | virtual VA getPermissionsLevel() const = 0; // enum CommandPermissionLevel getPermissionsLevel() const
32 | virtual std::unique_ptr clone() const = 0;
33 | virtual bool unk1() const = 0;
34 | virtual bool unk2() const = 0;
35 | virtual bool hasChatPerms() const = 0;
36 | virtual bool hasTellPerms() const = 0;
37 | virtual bool canUseAbility(VA) const = 0; // bool canUseAbility(AbilitiesIndex) const
38 | virtual bool isWorldBuilder() const = 0;
39 | virtual bool canUseCommandsWithoutCheatsEnabled() const = 0;
40 | virtual bool isSelectorExpansionAllowed() const = 0;
41 | virtual VA getSourceId_net() const = 0; // NetworkIdentifier getSourceId_net() const
42 | virtual char getSourceSubId() const = 0;
43 | virtual CommandOrigin* getOutputReceiver() const = 0;
44 | virtual OriginType getOriginType() const = 0;
45 | virtual void toCommandOriginData_stub() const = 0;
46 | virtual VA const& getUUID() const = 0; // mce::UUID const& getUUID() const
47 | virtual void handleCommandOutputCallback_stub(void*) = 0;
48 | virtual void _setUUID(VA const&) = 0; // void _setUUID(mce::UUID const&)
49 | };
50 |
51 | class CommandContext {
52 | public:
53 | std::string CMD;
54 | CommandOrigin* Ori;
55 | int Version = 10;
56 | std::string& getCmd() {
57 | return CMD;
58 | }
59 | class CommandOrigin& getOrigin() {
60 | return *Ori;
61 | }
62 | };
--------------------------------------------------------------------------------
/BDSNetRunner/cpp.hint:
--------------------------------------------------------------------------------
1 | // 提示文件帮助 Visual Studio IDE 解释 Visual C++ 标识符,
2 | // 如函数和宏的名称。
3 | // 有关详细信息,请参见 https://go.microsoft.com/fwlink/?linkid=865984
4 | #define MCCSAPI __declspec (dllexport)
5 |
--------------------------------------------------------------------------------
/BDSNetRunner/dllmain.cpp:
--------------------------------------------------------------------------------
1 | // dllmain.cpp : 定义 DLL 应用程序的入口点。
2 | #include "pch.h"
3 |
4 | #pragma comment(lib, "./Detours/lib.X64/detours.lib")
5 | #pragma comment(lib, "./json/lib/jsoncpp.lib")
6 | #pragma comment ( lib, "ws2_32.lib")
7 | #pragma comment ( lib, "wldap32.lib")
8 | #pragma comment ( lib, "Crypt32.lib")
9 | #pragma comment ( lib, "Normaliz.lib")
10 |
11 | #include "mod.h"
12 |
13 |
14 |
15 | BOOL APIENTRY DllMain( HMODULE hModule,
16 | DWORD ul_reason_for_call,
17 | LPVOID lpReserved
18 | )
19 | {
20 | switch (ul_reason_for_call)
21 | {
22 | case DLL_PROCESS_ATTACH:
23 | init();
24 | break;
25 | case DLL_THREAD_ATTACH:
26 | case DLL_THREAD_DETACH:
27 | break;
28 | case DLL_PROCESS_DETACH:
29 | exit();
30 | break;
31 | }
32 | return TRUE;
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/BDSNetRunner/framework.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的内容
4 | // Windows 头文件
5 | #include
6 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/allocator.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_ALLOCATOR_H_INCLUDED
7 | #define JSON_ALLOCATOR_H_INCLUDED
8 |
9 | #include
10 | #include
11 |
12 | #pragma pack(push, 8)
13 |
14 | namespace Json {
15 | template class SecureAllocator {
16 | public:
17 | // Type definitions
18 | using value_type = T;
19 | using pointer = T*;
20 | using const_pointer = const T*;
21 | using reference = T&;
22 | using const_reference = const T&;
23 | using size_type = std::size_t;
24 | using difference_type = std::ptrdiff_t;
25 |
26 | /**
27 | * Allocate memory for N items using the standard allocator.
28 | */
29 | pointer allocate(size_type n) {
30 | // allocate using "global operator new"
31 | return static_cast(::operator new(n * sizeof(T)));
32 | }
33 |
34 | /**
35 | * Release memory which was allocated for N items at pointer P.
36 | *
37 | * The memory block is filled with zeroes before being released.
38 | * The pointer argument is tagged as "volatile" to prevent the
39 | * compiler optimizing out this critical step.
40 | */
41 | void deallocate(volatile pointer p, size_type n) {
42 | std::memset(p, 0, n * sizeof(T));
43 | // free using "global operator delete"
44 | ::operator delete(p);
45 | }
46 |
47 | /**
48 | * Construct an item in-place at pointer P.
49 | */
50 | template void construct(pointer p, Args&&... args) {
51 | // construct using "placement new" and "perfect forwarding"
52 | ::new (static_cast(p)) T(std::forward(args)...);
53 | }
54 |
55 | size_type max_size() const { return size_t(-1) / sizeof(T); }
56 |
57 | pointer address(reference x) const { return std::addressof(x); }
58 |
59 | const_pointer address(const_reference x) const { return std::addressof(x); }
60 |
61 | /**
62 | * Destroy an item in-place at pointer P.
63 | */
64 | void destroy(pointer p) {
65 | // destroy using "explicit destructor"
66 | p->~T();
67 | }
68 |
69 | // Boilerplate
70 | SecureAllocator() {}
71 | template SecureAllocator(const SecureAllocator&) {}
72 | template struct rebind { using other = SecureAllocator; };
73 | };
74 |
75 | template
76 | bool operator==(const SecureAllocator&, const SecureAllocator&) {
77 | return true;
78 | }
79 |
80 | template
81 | bool operator!=(const SecureAllocator&, const SecureAllocator&) {
82 | return false;
83 | }
84 |
85 | } // namespace Json
86 |
87 | #pragma pack(pop)
88 |
89 | #endif // JSON_ALLOCATOR_H_INCLUDED
90 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/assertions.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_ASSERTIONS_H_INCLUDED
7 | #define JSON_ASSERTIONS_H_INCLUDED
8 |
9 | #include
10 | #include
11 |
12 | #if !defined(JSON_IS_AMALGAMATION)
13 | #include "config.h"
14 | #endif // if !defined(JSON_IS_AMALGAMATION)
15 |
16 | /** It should not be possible for a maliciously designed file to
17 | * cause an abort() or seg-fault, so these macros are used only
18 | * for pre-condition violations and internal logic errors.
19 | */
20 | #if JSON_USE_EXCEPTION
21 |
22 | // @todo <= add detail about condition in exception
23 | #define JSON_ASSERT(condition) \
24 | { \
25 | if (!(condition)) { \
26 | Json::throwLogicError("assert json failed"); \
27 | } \
28 | }
29 |
30 | #define JSON_FAIL_MESSAGE(message) \
31 | { \
32 | OStringStream oss; \
33 | oss << message; \
34 | Json::throwLogicError(oss.str()); \
35 | abort(); \
36 | }
37 |
38 | #else // JSON_USE_EXCEPTION
39 |
40 | #define JSON_ASSERT(condition) assert(condition)
41 |
42 | // The call to assert() will show the failure message in debug builds. In
43 | // release builds we abort, for a core-dump or debugger.
44 | #define JSON_FAIL_MESSAGE(message) \
45 | { \
46 | OStringStream oss; \
47 | oss << message; \
48 | assert(false && oss.str().c_str()); \
49 | abort(); \
50 | }
51 |
52 | #endif
53 |
54 | #define JSON_ASSERT_MESSAGE(condition, message) \
55 | if (!(condition)) { \
56 | JSON_FAIL_MESSAGE(message); \
57 | }
58 |
59 | #endif // JSON_ASSERTIONS_H_INCLUDED
60 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/config.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_CONFIG_H_INCLUDED
7 | #define JSON_CONFIG_H_INCLUDED
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 |
17 | // If non-zero, the library uses exceptions to report bad input instead of C
18 | // assertion macros. The default is to use exceptions.
19 | #ifndef JSON_USE_EXCEPTION
20 | #define JSON_USE_EXCEPTION 1
21 | #endif
22 |
23 | // Temporary, tracked for removal with issue #982.
24 | #ifndef JSON_USE_NULLREF
25 | #define JSON_USE_NULLREF 1
26 | #endif
27 |
28 | /// If defined, indicates that the source file is amalgamated
29 | /// to prevent private header inclusion.
30 | /// Remarks: it is automatically defined in the generated amalgamated header.
31 | // #define JSON_IS_AMALGAMATION
32 |
33 | // Export macros for DLL visibility
34 | #if defined(JSON_DLL_BUILD)
35 | #if defined(_MSC_VER) || defined(__MINGW32__)
36 | #define JSON_API __declspec(dllexport)
37 | #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
38 | #elif defined(__GNUC__) || defined(__clang__)
39 | #define JSON_API __attribute__((visibility("default")))
40 | #endif // if defined(_MSC_VER)
41 |
42 | #elif defined(JSON_DLL)
43 | #if defined(_MSC_VER) || defined(__MINGW32__)
44 | #define JSON_API __declspec(dllimport)
45 | #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
46 | #endif // if defined(_MSC_VER)
47 | #endif // ifdef JSON_DLL_BUILD
48 |
49 | #if !defined(JSON_API)
50 | #define JSON_API
51 | #endif
52 |
53 | #if defined(_MSC_VER) && _MSC_VER < 1800
54 | #error \
55 | "ERROR: Visual Studio 12 (2013) with _MSC_VER=1800 is the oldest supported compiler with sufficient C++11 capabilities"
56 | #endif
57 |
58 | #if defined(_MSC_VER) && _MSC_VER < 1900
59 | // As recommended at
60 | // https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010
61 | extern JSON_API int msvc_pre1900_c99_snprintf(char* outBuf, size_t size,
62 | const char* format, ...);
63 | #define jsoncpp_snprintf msvc_pre1900_c99_snprintf
64 | #else
65 | #define jsoncpp_snprintf std::snprintf
66 | #endif
67 |
68 | // If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
69 | // integer
70 | // Storages, and 64 bits integer support is disabled.
71 | // #define JSON_NO_INT64 1
72 |
73 | // JSONCPP_OVERRIDE is maintained for backwards compatibility of external tools.
74 | // C++11 should be used directly in JSONCPP.
75 | #define JSONCPP_OVERRIDE override
76 |
77 | #if __cplusplus >= 201103L
78 | #define JSONCPP_NOEXCEPT noexcept
79 | #define JSONCPP_OP_EXPLICIT explicit
80 | #elif defined(_MSC_VER) && _MSC_VER < 1900
81 | #define JSONCPP_NOEXCEPT throw()
82 | #define JSONCPP_OP_EXPLICIT explicit
83 | #elif defined(_MSC_VER) && _MSC_VER >= 1900
84 | #define JSONCPP_NOEXCEPT noexcept
85 | #define JSONCPP_OP_EXPLICIT explicit
86 | #else
87 | #define JSONCPP_NOEXCEPT throw()
88 | #define JSONCPP_OP_EXPLICIT
89 | #endif
90 |
91 | #ifdef __clang__
92 | #if __has_extension(attribute_deprecated_with_message)
93 | #define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message)))
94 | #endif
95 | #elif defined(__GNUC__) // not clang (gcc comes later since clang emulates gcc)
96 | #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
97 | #define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message)))
98 | #elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
99 | #define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
100 | #endif // GNUC version
101 | #elif defined(_MSC_VER) // MSVC (after clang because clang on Windows emulates
102 | // MSVC)
103 | #define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
104 | #endif // __clang__ || __GNUC__ || _MSC_VER
105 |
106 | #if !defined(JSONCPP_DEPRECATED)
107 | #define JSONCPP_DEPRECATED(message)
108 | #endif // if !defined(JSONCPP_DEPRECATED)
109 |
110 | #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6))
111 | #define JSON_USE_INT64_DOUBLE_CONVERSION 1
112 | #endif
113 |
114 | #if !defined(JSON_IS_AMALGAMATION)
115 |
116 | #include "allocator.h"
117 | #include "version.h"
118 |
119 | #endif // if !defined(JSON_IS_AMALGAMATION)
120 |
121 | namespace Json {
122 | using Int = int;
123 | using UInt = unsigned int;
124 | #if defined(JSON_NO_INT64)
125 | using LargestInt = int;
126 | using LargestUInt = unsigned int;
127 | #undef JSON_HAS_INT64
128 | #else // if defined(JSON_NO_INT64)
129 | // For Microsoft Visual use specific types as long long is not supported
130 | #if defined(_MSC_VER) // Microsoft Visual Studio
131 | using Int64 = __int64;
132 | using UInt64 = unsigned __int64;
133 | #else // if defined(_MSC_VER) // Other platforms, use long long
134 | using Int64 = int64_t;
135 | using UInt64 = uint64_t;
136 | #endif // if defined(_MSC_VER)
137 | using LargestInt = Int64;
138 | using LargestUInt = UInt64;
139 | #define JSON_HAS_INT64
140 | #endif // if defined(JSON_NO_INT64)
141 |
142 | template
143 | using Allocator =
144 | typename std::conditional,
145 | std::allocator>::type;
146 | using String = std::basic_string, Allocator>;
147 | using IStringStream =
148 | std::basic_istringstream;
150 | using OStringStream =
151 | std::basic_ostringstream;
153 | using IStream = std::istream;
154 | using OStream = std::ostream;
155 | } // namespace Json
156 |
157 | // Legacy names (formerly macros).
158 | using JSONCPP_STRING = Json::String;
159 | using JSONCPP_ISTRINGSTREAM = Json::IStringStream;
160 | using JSONCPP_OSTRINGSTREAM = Json::OStringStream;
161 | using JSONCPP_ISTREAM = Json::IStream;
162 | using JSONCPP_OSTREAM = Json::OStream;
163 |
164 | #endif // JSON_CONFIG_H_INCLUDED
165 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/forwards.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_FORWARDS_H_INCLUDED
7 | #define JSON_FORWARDS_H_INCLUDED
8 |
9 | #if !defined(JSON_IS_AMALGAMATION)
10 | #include "config.h"
11 | #endif // if !defined(JSON_IS_AMALGAMATION)
12 |
13 | namespace Json {
14 |
15 | // writer.h
16 | class StreamWriter;
17 | class StreamWriterBuilder;
18 | class Writer;
19 | class FastWriter;
20 | class StyledWriter;
21 | class StyledStreamWriter;
22 |
23 | // reader.h
24 | class Reader;
25 | class CharReader;
26 | class CharReaderBuilder;
27 |
28 | // json_features.h
29 | class Features;
30 |
31 | // value.h
32 | using ArrayIndex = unsigned int;
33 | class StaticString;
34 | class Path;
35 | class PathArgument;
36 | class Value;
37 | class ValueIteratorBase;
38 | class ValueIterator;
39 | class ValueConstIterator;
40 |
41 | } // namespace Json
42 |
43 | #endif // JSON_FORWARDS_H_INCLUDED
44 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/json.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_JSON_H_INCLUDED
7 | #define JSON_JSON_H_INCLUDED
8 |
9 | #include "config.h"
10 | #include "json_features.h"
11 | #include "reader.h"
12 | #include "value.h"
13 | #include "writer.h"
14 |
15 | #endif // JSON_JSON_H_INCLUDED
16 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/json_features.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_FEATURES_H_INCLUDED
7 | #define JSON_FEATURES_H_INCLUDED
8 |
9 | #if !defined(JSON_IS_AMALGAMATION)
10 | #include "forwards.h"
11 | #endif // if !defined(JSON_IS_AMALGAMATION)
12 |
13 | #pragma pack(push, 8)
14 |
15 | namespace Json {
16 |
17 | /** \brief Configuration passed to reader and writer.
18 | * This configuration object can be used to force the Reader or Writer
19 | * to behave in a standard conforming way.
20 | */
21 | class JSON_API Features {
22 | public:
23 | /** \brief A configuration that allows all features and assumes all strings
24 | * are UTF-8.
25 | * - C & C++ comments are allowed
26 | * - Trailing commas in objects and arrays are allowed.
27 | * - Root object can be any JSON value
28 | * - Assumes Value strings are encoded in UTF-8
29 | */
30 | static Features all();
31 |
32 | /** \brief A configuration that is strictly compatible with the JSON
33 | * specification.
34 | * - Comments are forbidden.
35 | * - Trailing commas in objects and arrays are forbidden.
36 | * - Root object must be either an array or an object value.
37 | * - Assumes Value strings are encoded in UTF-8
38 | */
39 | static Features strictMode();
40 |
41 | /** \brief Initialize the configuration like JsonConfig::allFeatures;
42 | */
43 | Features();
44 |
45 | /// \c true if comments are allowed. Default: \c true.
46 | bool allowComments_{true};
47 |
48 | /// \c true if trailing commas in objects and arrays are allowed. Default \c
49 | /// true.
50 | bool allowTrailingCommas_{true};
51 |
52 | /// \c true if root must be either an array or an object value. Default: \c
53 | /// false.
54 | bool strictRoot_{false};
55 |
56 | /// \c true if dropped null placeholders are allowed. Default: \c false.
57 | bool allowDroppedNullPlaceholders_{false};
58 |
59 | /// \c true if numeric object key are allowed. Default: \c false.
60 | bool allowNumericKeys_{false};
61 | };
62 |
63 | } // namespace Json
64 |
65 | #pragma pack(pop)
66 |
67 | #endif // JSON_FEATURES_H_INCLUDED
68 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/reader.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_READER_H_INCLUDED
7 | #define JSON_READER_H_INCLUDED
8 |
9 | #if !defined(JSON_IS_AMALGAMATION)
10 | #include "json_features.h"
11 | #include "value.h"
12 | #endif // if !defined(JSON_IS_AMALGAMATION)
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 |
19 | // Disable warning C4251: : needs to have dll-interface to
20 | // be used by...
21 | #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
22 | #pragma warning(push)
23 | #pragma warning(disable : 4251)
24 | #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
25 |
26 | #pragma pack(push, 8)
27 |
28 | namespace Json {
29 |
30 | /** \brief Unserialize a JSON document into a
31 | * Value.
32 | *
33 | * \deprecated Use CharReader and CharReaderBuilder.
34 | */
35 |
36 | class JSONCPP_DEPRECATED(
37 | "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
38 | public:
39 | using Char = char;
40 | using Location = const Char*;
41 |
42 | /** \brief An error tagged with where in the JSON text it was encountered.
43 | *
44 | * The offsets give the [start, limit) range of bytes within the text. Note
45 | * that this is bytes, not codepoints.
46 | */
47 | struct StructuredError {
48 | ptrdiff_t offset_start;
49 | ptrdiff_t offset_limit;
50 | String message;
51 | };
52 |
53 | /** \brief Constructs a Reader allowing all features for parsing.
54 | */
55 | JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead")
56 | Reader();
57 |
58 | /** \brief Constructs a Reader allowing the specified feature set for parsing.
59 | */
60 | JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead")
61 | Reader(const Features& features);
62 |
63 | /** \brief Read a Value from a JSON
64 | * document.
65 | *
66 | * \param document UTF-8 encoded string containing the document
67 | * to read.
68 | * \param[out] root Contains the root value of the document if it
69 | * was successfully parsed.
70 | * \param collectComments \c true to collect comment and allow writing
71 | * them back during serialization, \c false to
72 | * discard comments. This parameter is ignored
73 | * if Features::allowComments_ is \c false.
74 | * \return \c true if the document was successfully parsed, \c false if an
75 | * error occurred.
76 | */
77 | bool parse(const std::string& document, Value& root,
78 | bool collectComments = true);
79 |
80 | /** \brief Read a Value from a JSON
81 | * document.
82 | *
83 | * \param beginDoc Pointer on the beginning of the UTF-8 encoded
84 | * string of the document to read.
85 | * \param endDoc Pointer on the end of the UTF-8 encoded string
86 | * of the document to read. Must be >= beginDoc.
87 | * \param[out] root Contains the root value of the document if it
88 | * was successfully parsed.
89 | * \param collectComments \c true to collect comment and allow writing
90 | * them back during serialization, \c false to
91 | * discard comments. This parameter is ignored
92 | * if Features::allowComments_ is \c false.
93 | * \return \c true if the document was successfully parsed, \c false if an
94 | * error occurred.
95 | */
96 | bool parse(const char* beginDoc, const char* endDoc, Value& root,
97 | bool collectComments = true);
98 |
99 | /// \brief Parse from input stream.
100 | /// \see Json::operator>>(std::istream&, Json::Value&).
101 | bool parse(IStream& is, Value& root, bool collectComments = true);
102 |
103 | /** \brief Returns a user friendly string that list errors in the parsed
104 | * document.
105 | *
106 | * \return Formatted error message with the list of errors with their
107 | * location in the parsed document. An empty string is returned if no error
108 | * occurred during parsing.
109 | * \deprecated Use getFormattedErrorMessages() instead (typo fix).
110 | */
111 | JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.")
112 | String getFormatedErrorMessages() const;
113 |
114 | /** \brief Returns a user friendly string that list errors in the parsed
115 | * document.
116 | *
117 | * \return Formatted error message with the list of errors with their
118 | * location in the parsed document. An empty string is returned if no error
119 | * occurred during parsing.
120 | */
121 | String getFormattedErrorMessages() const;
122 |
123 | /** \brief Returns a vector of structured errors encountered while parsing.
124 | *
125 | * \return A (possibly empty) vector of StructuredError objects. Currently
126 | * only one error can be returned, but the caller should tolerate multiple
127 | * errors. This can occur if the parser recovers from a non-fatal parse
128 | * error and then encounters additional errors.
129 | */
130 | std::vector getStructuredErrors() const;
131 |
132 | /** \brief Add a semantic error message.
133 | *
134 | * \param value JSON Value location associated with the error
135 | * \param message The error message.
136 | * \return \c true if the error was successfully added, \c false if the Value
137 | * offset exceeds the document size.
138 | */
139 | bool pushError(const Value& value, const String& message);
140 |
141 | /** \brief Add a semantic error message with extra context.
142 | *
143 | * \param value JSON Value location associated with the error
144 | * \param message The error message.
145 | * \param extra Additional JSON Value location to contextualize the error
146 | * \return \c true if the error was successfully added, \c false if either
147 | * Value offset exceeds the document size.
148 | */
149 | bool pushError(const Value& value, const String& message, const Value& extra);
150 |
151 | /** \brief Return whether there are any errors.
152 | *
153 | * \return \c true if there are no errors to report \c false if errors have
154 | * occurred.
155 | */
156 | bool good() const;
157 |
158 | private:
159 | enum TokenType {
160 | tokenEndOfStream = 0,
161 | tokenObjectBegin,
162 | tokenObjectEnd,
163 | tokenArrayBegin,
164 | tokenArrayEnd,
165 | tokenString,
166 | tokenNumber,
167 | tokenTrue,
168 | tokenFalse,
169 | tokenNull,
170 | tokenArraySeparator,
171 | tokenMemberSeparator,
172 | tokenComment,
173 | tokenError
174 | };
175 |
176 | class Token {
177 | public:
178 | TokenType type_;
179 | Location start_;
180 | Location end_;
181 | };
182 |
183 | class ErrorInfo {
184 | public:
185 | Token token_;
186 | String message_;
187 | Location extra_;
188 | };
189 |
190 | using Errors = std::deque;
191 |
192 | bool readToken(Token& token);
193 | void skipSpaces();
194 | bool match(const Char* pattern, int patternLength);
195 | bool readComment();
196 | bool readCStyleComment();
197 | bool readCppStyleComment();
198 | bool readString();
199 | void readNumber();
200 | bool readValue();
201 | bool readObject(Token& token);
202 | bool readArray(Token& token);
203 | bool decodeNumber(Token& token);
204 | bool decodeNumber(Token& token, Value& decoded);
205 | bool decodeString(Token& token);
206 | bool decodeString(Token& token, String& decoded);
207 | bool decodeDouble(Token& token);
208 | bool decodeDouble(Token& token, Value& decoded);
209 | bool decodeUnicodeCodePoint(Token& token, Location& current, Location end,
210 | unsigned int& unicode);
211 | bool decodeUnicodeEscapeSequence(Token& token, Location& current,
212 | Location end, unsigned int& unicode);
213 | bool addError(const String& message, Token& token, Location extra = nullptr);
214 | bool recoverFromError(TokenType skipUntilToken);
215 | bool addErrorAndRecover(const String& message, Token& token,
216 | TokenType skipUntilToken);
217 | void skipUntilSpace();
218 | Value& currentValue();
219 | Char getNextChar();
220 | void getLocationLineAndColumn(Location location, int& line,
221 | int& column) const;
222 | String getLocationLineAndColumn(Location location) const;
223 | void addComment(Location begin, Location end, CommentPlacement placement);
224 | void skipCommentTokens(Token& token);
225 |
226 | static bool containsNewLine(Location begin, Location end);
227 | static String normalizeEOL(Location begin, Location end);
228 |
229 | using Nodes = std::stack;
230 | Nodes nodes_;
231 | Errors errors_;
232 | String document_;
233 | Location begin_{};
234 | Location end_{};
235 | Location current_{};
236 | Location lastValueEnd_{};
237 | Value* lastValue_{};
238 | String commentsBefore_;
239 | Features features_;
240 | bool collectComments_{};
241 | }; // Reader
242 |
243 | /** Interface for reading JSON from a char array.
244 | */
245 | class JSON_API CharReader {
246 | public:
247 | virtual ~CharReader() = default;
248 | /** \brief Read a Value from a JSON
249 | * document. The document must be a UTF-8 encoded string containing the
250 | * document to read.
251 | *
252 | * \param beginDoc Pointer on the beginning of the UTF-8 encoded string
253 | * of the document to read.
254 | * \param endDoc Pointer on the end of the UTF-8 encoded string of the
255 | * document to read. Must be >= beginDoc.
256 | * \param[out] root Contains the root value of the document if it was
257 | * successfully parsed.
258 | * \param[out] errs Formatted error messages (if not NULL) a user
259 | * friendly string that lists errors in the parsed
260 | * document.
261 | * \return \c true if the document was successfully parsed, \c false if an
262 | * error occurred.
263 | */
264 | virtual bool parse(char const* beginDoc, char const* endDoc, Value* root,
265 | String* errs) = 0;
266 |
267 | class JSON_API Factory {
268 | public:
269 | virtual ~Factory() = default;
270 | /** \brief Allocate a CharReader via operator new().
271 | * \throw std::exception if something goes wrong (e.g. invalid settings)
272 | */
273 | virtual CharReader* newCharReader() const = 0;
274 | }; // Factory
275 | }; // CharReader
276 |
277 | /** \brief Build a CharReader implementation.
278 | *
279 | * Usage:
280 | * \code
281 | * using namespace Json;
282 | * CharReaderBuilder builder;
283 | * builder["collectComments"] = false;
284 | * Value value;
285 | * String errs;
286 | * bool ok = parseFromStream(builder, std::cin, &value, &errs);
287 | * \endcode
288 | */
289 | class JSON_API CharReaderBuilder : public CharReader::Factory {
290 | public:
291 | // Note: We use a Json::Value so that we can add data-members to this class
292 | // without a major version bump.
293 | /** Configuration of this builder.
294 | * These are case-sensitive.
295 | * Available settings (case-sensitive):
296 | * - `"collectComments": false or true`
297 | * - true to collect comment and allow writing them back during
298 | * serialization, false to discard comments. This parameter is ignored
299 | * if allowComments is false.
300 | * - `"allowComments": false or true`
301 | * - true if comments are allowed.
302 | * - `"allowTrailingCommas": false or true`
303 | * - true if trailing commas in objects and arrays are allowed.
304 | * - `"strictRoot": false or true`
305 | * - true if root must be either an array or an object value
306 | * - `"allowDroppedNullPlaceholders": false or true`
307 | * - true if dropped null placeholders are allowed. (See
308 | * StreamWriterBuilder.)
309 | * - `"allowNumericKeys": false or true`
310 | * - true if numeric object keys are allowed.
311 | * - `"allowSingleQuotes": false or true`
312 | * - true if '' are allowed for strings (both keys and values)
313 | * - `"stackLimit": integer`
314 | * - Exceeding stackLimit (recursive depth of `readValue()`) will cause an
315 | * exception.
316 | * - This is a security issue (seg-faults caused by deeply nested JSON), so
317 | * the default is low.
318 | * - `"failIfExtra": false or true`
319 | * - If true, `parse()` returns false when extra non-whitespace trails the
320 | * JSON value in the input string.
321 | * - `"rejectDupKeys": false or true`
322 | * - If true, `parse()` returns false when a key is duplicated within an
323 | * object.
324 | * - `"allowSpecialFloats": false or true`
325 | * - If true, special float values (NaNs and infinities) are allowed and
326 | * their values are lossfree restorable.
327 | *
328 | * You can examine 'settings_` yourself to see the defaults. You can also
329 | * write and read them just like any JSON Value.
330 | * \sa setDefaults()
331 | */
332 | Json::Value settings_;
333 |
334 | CharReaderBuilder();
335 | ~CharReaderBuilder() override;
336 |
337 | CharReader* newCharReader() const override;
338 |
339 | /** \return true if 'settings' are legal and consistent;
340 | * otherwise, indicate bad settings via 'invalid'.
341 | */
342 | bool validate(Json::Value* invalid) const;
343 |
344 | /** A simple way to update a specific setting.
345 | */
346 | Value& operator[](const String& key);
347 |
348 | /** Called by ctor, but you can use this to reset settings_.
349 | * \pre 'settings' != NULL (but Json::null is fine)
350 | * \remark Defaults:
351 | * \snippet src/lib_json/json_reader.cpp CharReaderBuilderDefaults
352 | */
353 | static void setDefaults(Json::Value* settings);
354 | /** Same as old Features::strictMode().
355 | * \pre 'settings' != NULL (but Json::null is fine)
356 | * \remark Defaults:
357 | * \snippet src/lib_json/json_reader.cpp CharReaderBuilderStrictMode
358 | */
359 | static void strictMode(Json::Value* settings);
360 | };
361 |
362 | /** Consume entire stream and use its begin/end.
363 | * Someday we might have a real StreamReader, but for now this
364 | * is convenient.
365 | */
366 | bool JSON_API parseFromStream(CharReader::Factory const&, IStream&, Value* root,
367 | String* errs);
368 |
369 | /** \brief Read from 'sin' into 'root'.
370 | *
371 | * Always keep comments from the input JSON.
372 | *
373 | * This can be used to read a file into a particular sub-object.
374 | * For example:
375 | * \code
376 | * Json::Value root;
377 | * cin >> root["dir"]["file"];
378 | * cout << root;
379 | * \endcode
380 | * Result:
381 | * \verbatim
382 | * {
383 | * "dir": {
384 | * "file": {
385 | * // The input stream JSON would be nested here.
386 | * }
387 | * }
388 | * }
389 | * \endverbatim
390 | * \throw std::exception on parse error.
391 | * \see Json::operator<<()
392 | */
393 | JSON_API IStream& operator>>(IStream&, Value&);
394 |
395 | } // namespace Json
396 |
397 | #pragma pack(pop)
398 |
399 | #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
400 | #pragma warning(pop)
401 | #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
402 |
403 | #endif // JSON_READER_H_INCLUDED
404 |
--------------------------------------------------------------------------------
/BDSNetRunner/json/include/json/value.h:
--------------------------------------------------------------------------------
1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
2 | // Distributed under MIT license, or public domain if desired and
3 | // recognized in your jurisdiction.
4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
5 |
6 | #ifndef JSON_H_INCLUDED
7 | #define JSON_H_INCLUDED
8 |
9 | #if !defined(JSON_IS_AMALGAMATION)
10 | #include "forwards.h"
11 | #endif // if !defined(JSON_IS_AMALGAMATION)
12 |
13 | // Conditional NORETURN attribute on the throw functions would:
14 | // a) suppress false positives from static code analysis
15 | // b) possibly improve optimization opportunities.
16 | #if !defined(JSONCPP_NORETURN)
17 | #if defined(_MSC_VER) && _MSC_VER == 1800
18 | #define JSONCPP_NORETURN __declspec(noreturn)
19 | #else
20 | #define JSONCPP_NORETURN [[noreturn]]
21 | #endif
22 | #endif
23 |
24 | #include
25 | #include
26 | #include