例如:有一个程序B 调用了function()并传递了bstrSTDMETHODIMP Cmy::function(BSTR bstr)
{/// 这里我有什么办法可以 启动并调用 另一个已经安装在硬盘上的程序?
/// 能否详细写出code的实现过程?
/// 有例子吗?
}谢谢!

解决方案 »

  1.   

    ShellExecute(NULL,"open","C:\\a.exe",
    " -a -b","c:\\",SW_SHOWDEFAULT)
    " -a -b“为执行该文件的参数可设为NULL
    "c:\\"为设定该可执行文件的工作目录
      

  2.   

    忘记说了,我的意思是如果那个DLL是装到window\system\里面的,那么DLL怎样知道 要运行的程序装到哪里?难道只有用注册表??还有一点,其实我是想当 DLL运行那个程序的时候同时 传些数据给那个程序,
    在window的exe怎样做呢?
      

  3.   

    你可以把DLL和EXE放在一起呀,就不用检查在哪了,
    如果是你自己写的话,写明白路径不就好了么,实现方式同意
    kingcom_xu(刀是用来杀人的!) ( )
      

  4.   

    "如果那个DLL是装到window\system\里面的"
    看来第一个问题的答案是只有用注册表了。谁有更好的建议?
    当然放在一起,就不需要了。
    "发数据给那个程序? 那个程序是不是你自己写的? 是或不是有不同的解决办法,你该把问题说清楚点~"
    "还有一点,其实我是想当 DLL运行那个程序的时候同时 传些数据给那个程序,
    在window的exe怎样做呢?"=============
    就是说,在
    STDMETHODIMP Cmy::function(BSTR bstr)
    {
    //1.调用一个程序A。(这个问题如上所述)
    //2.在程序A启动的之前,我希望程序可以读取到 bstr.
    }想到这两个方面:
    1.或者可以把 bstr写个file, 但是不知道 ATL支持不支持CFile2.能不能由程序A从 这个DLL里读出bstr. 应该不可以,因为如果程序调用那个DLL,也就是另外调用这个DLL了怎么办?
      

  5.   

    Maybe you can use Envirenment variables.
      

  6.   

    Can you tell me How to use "Envirenment Variable" for detail?Thanks
      

  7.   

    window的exe怎样设置启动参数和环境变量??
    能给些提示要具体怎样做吗,给些关键的函数也好让我方便搜索啊!!谢谢
      

  8.   

    设置环境变量需要用 CreateProcess:BOOL CreateProcess(
      LPCTSTR lpApplicationName,                 // name of executable module
      LPTSTR lpCommandLine,                      // command line string
      LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
      LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
      BOOL bInheritHandles,                      // handle inheritance option
      DWORD dwCreationFlags,                     // creation flags
      LPVOID lpEnvironment,                      // new environment block
      LPCTSTR lpCurrentDirectory,                // current directory name
      LPSTARTUPINFO lpStartupInfo,               // startup information
      LPPROCESS_INFORMATION lpProcessInformation // process information
    );lpEnvironment 是一个字符串块,类似以下格式:"name1=value1'\0'name2=value2'\0'...namex=valuex'\0''\0'"其中'\0'表示字符串结束符。
      

  9.   

    BTW:设置命令行参数用 lpCommandLine,可以把 lpApplicationName 设为NULL,而在中传递整个执行命令,比如"NOTEPAD.EXE /p A.txt"
      

  10.   

    对不起,刚刚csdn没有load到下面的内容,所以看不到。