Shell扩展中全局变量初始化,该如何解决

Shell扩展中全局变量初始化
在学习Windows shell扩展编程,其中在一个文件中定义了全局变量dwFirst = 0,想实现目标:首次调用时进行一定的初始化任务,然后dwFirst = 1,代码在InvokeCommand()中调用。
结果发现程序多次进入if(dwFirst == 0){
初始化;}中执行,难道说对全局变量dwFirst进行了多次的初始化?我不明白其中的机制,或者是我错在了哪里。
希望各位指点~谢谢!

------解决方案--------------------
全局和静态的只会初始化一次。。。
------解决方案--------------------
存在多个SHELL进程,每个进程中都会初始化一次。
------解决方案--------------------
可以把你需要机器唯一存在的变量做到一个Service里,可搜索“windows seivice编程”看看具体做法
------解决方案--------------------
使用共享节,共享的变量是通过共享内存的方式多个进程共享的,但变量访问需要加锁。