Accessing static data of functions
Steven Schveighoffer
schveiguy at gmail.com
Tue Oct 19 14:19:41 UTC 2021
On 10/14/21 10:21 AM, Ogi wrote:
> Is there any way to get/set static variables defined in functions from
> the outside? Also, is there any way to access the types defined inside
> in function to get/set their static members?
>
> I’m writing a game engine that should support a dynamic plugin system
> similar to what Manu Evans described in his [Using D Alongside a Game
> Engine](https://youtu.be/FKceA691Wcg) talk. Basically, game objects are
> defined in modules to be compiled as DLLs and loaded dynamically. This
> allows making modifications without even restarting the game. Plugin
> manager detects a modification in a plugin source file, serializes all
> game objects into text, unloads a DLL, recompiles it, loads it again and
> deserialize the game objects back.
>
> So far so good, I’m now able to serialize/deserialize game objects
> (including private fields), and any global variables defined in a
> plugin, and any static members of the types defined in a plugin. But I
> don’t know what to do with the stuff that could be defined inside of a
> function, I can’t find any trait or a template that could access it.
As long as it has a mangle, you can access it.
https://run.dlang.io/is/uukAPa
Now, how to get at that mangle? I think it's impossible to do
introspectively (or even detect that those things exist). But if you
have control of the code, it's possible.
-Steve
More information about the Digitalmars-d
mailing list