要是数据量小:八个字节以内,可以直接发消息。
否则要用IPC(进程间通信)的其他方式了,如共享内存

解决方案 »

  1.   


    同意ychener(贫血)和luxes()的
      

  2.   

    可以采用导入数值的方法。(如你所说将dll的值导入EXE中)如下所示:
    在DLL中:
    _declspec(dllexport)  float fPointX;
    ...........
    在EXE中:
    _declspec(dllimport)  float fPointX;不过此种方法有一个缺陷,只能在一个EXE和一个DLL中导入数据,而不能在一个EXE和多个DLL中共享数据。遇到后一种情况的时候:如果你仍然需要传输数据,可以在每个DLL中定义一个函数来传递数据。例如:CMyClass (在DLL中定义的类,用扩展型MFC动态链接类型)
    Class CMyClass
    {
    ............
    public:
    float GetPointX();
    void GetPointX(float *p_PointX);};
    在EXE中:
     CMyClass MyClass;
     MyClass.GetPointX();
    或者:
    float fX;
    MyClass.GetPointX(&fX);
    注:后一种方法对所有情况都适用。祝好运!
      

  3.   

    谢谢各位的答复,在大家的帮助下我已经完成了相关的问题,分数我会给的
    请帮忙再给看一个问题:
    我在做一个菜程序:在对话框中显示鼠标位置(包括在对话框外),我用到了dll,通过上面的方法也把鼠标的坐标位置从dll传给了对话框,但是在对话框中的数字却不能时时的改变,如果鼠标在对话框内,可以在mousemove()函数中Updatedata,那么在对话框外如何通过dll触发一个函数,再在该函数中Updatedata呢?