none
急:DLL中的全局变量?? RRS feed

  • 问题

  • 我用WIN32 API中做了一个简单的DLL程序,在DLL程序中定义了一个简单的全局整形变量,并且用extern "C"导出一个函数Test(int n),然后分别用两个程序(Test1.ext和Test2.exe)用LoadLibrary的方法去调用该DLL并调用Test(1),Test(2),结果发现,两个程序调用的时候,这个全局变量的内存地址是一样的!!

    请问各位大牛,有没有办法定义一个全局变量,第一个程序调用的时,第二个程序也调用,但是不会改变这个全局变量的值啊?

    急用,谢谢。


    windows Mobile fans
    2010年7月7日 9:01

答案

  • 原理来说,地址是一样的。你在在调用的时候用一个临时变量,修改也对临时变量修改,这样不会影响到全局的变量。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2010年7月8日 8:47
    版主

全部回复

  • 原理来说,地址是一样的。你在在调用的时候用一个临时变量,修改也对临时变量修改,这样不会影响到全局的变量。
    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2010年7月8日 8:47
    版主
  • 这个跟DLL映射到exe中的机制有关系的吧?你这个“内存地址一样”的意思是它们的值一样,但是分属于两个进程啊,没什么意义的吧?

    还有,你是如何实现在DLL中定义“全局整形变量”的呢?

    2014年2月21日 3:36