DLL在method里面运行一个程序的时候同时 怎样传递数据给那个程序?在window的exe怎样做呢?"=============
就是说,在
STDMETHODIMP Cmy::function(BSTR bstr)
{
//1.调用一个程序A。(参见http://expert.csdn.net/Expert/topic/1303/1303748.xml?temp=.4429743
所述)
//2.在程序A启动的之前,我希望程序可以读取到 bstr.
}想到这两个方面:
1.或者可以把 bstr写个file, 但是ATL支持不支持CFile2.能不能由程序A从 这个DLL里读出bstr. 应该不可以,因为如果程序调用那个DLL,也就是另外调用这个DLL了怎么办?请写出具体代码,谢谢!!

解决方案 »

  1.   

    可以把答案同时贴到
    http://expert.csdn.net/Expert/topic/1303/1303748.xml?temp=.4429743
    (90分)

    http://expert.csdn.net/Expert/topic/1303/1303749.xml?temp=.140072
    (90分)一样给分。共200分。
      

  2.   

    忘记说了,那个DLL是 已经被另一个程序B 创建并调用的了。然后DLL想自己运行程序A,同时传递自身的数据给A,A启动并接受数据。
      

  3.   

    能给些提示要具体怎样做吗,给些关键的函数也好让我方便搜索啊!!BTW: 程序A是自己写的。请帮忙up一下。
      

  4.   

    dll?不借助第三方资源好像不能这样做。
    CFILE不支持,可以用数据库啊!
      

  5.   

    1.调用一个程序A: 你可以CreateProcess(..)创建一个子进程,而后把参数fdwCreate 设定成:
    CREATE_SUSPENDED(意思是让创建的子进程的主线程挂起)
    然后,你可以获取你的字符串,接下来把挂起的主线程释放(ResumeThread()).2.能不能由程序A从这个DLL里读出bstr. 这个也能够办到,而且方法挺多,
    你可以通过发送具备数据的消息来达到(WM_COPYDATA,具体细节搜一下坛子),
    当然还可以通过内存映射文件方式来达到(通过 CreateFileMapping()).