我的进程A 在执行的过程中,CreateProcess了一个新进程B , 并需要将A的进程ID线程ID和一个指向一个结构体的指针传递给B,写配置文件划不来,想利用CreateProcess的第二个参数cmdline进行传递,可以不,另外怎么转化啊。

解决方案 »

  1.   

    试图跨进程传递指针是不可行的,传递数据是可行的,如果数据很少,可以通过命令行,在 A 中转出成字符串,在 B 中解析字符串;如果数据很多,可以使用 filemapping 进行数据交换。
      

  2.   

     并需要将A的进程ID线程ID和一个指向一个结构体的指针传递给B,
    ==========
    进程ID和线程ID可以传进去,结构体的指针传进去并没有什么用处,因为B进程不能访问A进程的空间。传递时可以用cmdline进行传递
      

  3.   

    1.发消息:SendMessage,找到窗体或者进程的句柄,就能发送,你结构体对吧,当指针传过去也没问题哦.只要那边有结构体对应(win7貌似屏蔽)2.共享内存:这个也是所有进程里通信的方法.createfilemapping,mapviewoffile等函数3.参数传递:平时你点击一个EXE文件,都是不跟参数的!模拟CMD界面进入DOS,诸如键入xxx.exe 123;这个就是将123作为参数运行exe.根据你结构体参数的个数,后面跟多少个参数都没问题,用空格区分参数.
      

  4.   

    不是不能传过去,而是传过去了没有用啊。你的结构体是在A进程的内存空间的,假设地址是010000,你将010000传给B进程,B进程得到这个地址去访问010000,但是这里的010000却是B进程内存空间的010000,你并不能由此得到A进程的结构体。Windows32下进程的寻址空间的相互独立的,也就是我们所说的不可以跨进程访问。
      

  5.   

    以你的表述,这样的程序你就别写了,写出来bug估计一大堆。