我想请教一下 DLL 传值问题
我建立了一个 ClassLibary,生成了 DLL文件
在这里 定义了一个 int C;初值为0。 又有一个 setC和 getC两个public类型的访问这个C变量的函数。我又建立了两个 C#窗口程序
第一个窗口程序,每0.8秒 递加,然后把这个 递加的值 不断传给 ClassLibary的 C变量
第二个窗口程序,每0.8秒 读取 ClassLibary的C变量。但是,第一个窗口成功写入,第二个窗口却永远读的是 0
窗口1和窗口2,读的是一个 DLL文件我应该怎么做,正确的 实时的 读取到 窗口1 写进来的数据呢?

解决方案 »

  1.   

    确认两个窗口访问的是同一个对象,或者属性是static的。
      

  2.   

    我确认访问的是同一个对象,
    应该和static无关吧?
      

  3.   

    这个C是static吗?
    如果不是static那么两个窗口类如何访问的同一个对象?还有你说的“窗口程序”是独立的程序吗?如果两个“窗口程序”是各自独立的程序,那么这个C是在每个程序域独立存在的,即此时有两个 C,不是同一个。
      

  4.   

    跨进程?
    那需要用mutex。或者使用Message,也可以用管道。
      

  5.   

    你的这两个窗口程序是独立的呢,还是有调用的关系呢?如果独立的话,那就要跨进程域来访问了,如果是有调用关系的话,就再检查下是否是同一对象了,如果是一个对象的话,用不用static值应该都是变的~
      

  6.   

    两个窗口是独立的
    也许以后,一个是C++的,一个是 C#的
    鄙人是初学,十分感谢大家的帮助。
    另外 mutex 或者 message 怎么用呢?
    如果一个是 VS c++ 一个是 C#.net 也可以用mutex或者mutex吗?
      

  7.   

    你如果A和B两个窗口都是去创建一个包含了C的对象,那么A的操作,B肯定不会拿到了,B拿到的都是初始值为0的那个对象呀。