我写了一个SHELL扩展DLL,就是向鼠标右键中添加菜单项,当用户点击我的菜单时,DLL向调用该DLL的我的应用程序发消息,通知执行某操作!可我如何能将DLL中获得的参数(一个字符串)传递给应用程序呢?
在自定义消息中的两个参数好象只能传32位整型数的!
我看有的文章介绍说,可以把一个字符串的地址通过参数传回来,但必须要求消息的收发双方必须在一个进程中
我试了一下这个方法可传回来的指针在我的应用程序里无法找到它所指向的数据呀!那我的这个DLL和我的应用程序算是在一个进程中吗?
我该如何解决这个问题呢?
谢谢了!

解决方案 »

  1.   


    传一个指向字符串的指针。
    你可以调试一下,在Memory里观察指针所指的位置,DLL中和Exe中是不是一样。
      

  2.   

    dll 应当会被映像到同一个地址空间的,没有问题。
    如果有问题,应当是别的问题。
    首先,你的字符串必须是全局变量,或者用new 出来的。
      

  3.   

    DLL和调用它的应用程序自然是在一个进程中。不过这个字符串不能位于栈上。
      

  4.   

    这个问题我已经解决了
    是通过发WM_COPYDATA消息解决的
    把要发的数据放在消息参数中不过还是要谢谢大家的关心