用vc写的窗口程序(exe),他不会单独使用,要嵌入到c#写的主程序中被调用或操作,要用什么方法?

解决方案 »

  1.   

    process。run 由你的C#程序里调用这句
      

  2.   

    http://www.cnblogs.com/eugenewu0808/archive/2009/03/19/1416624.html
      

  3.   

            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            public extern static IntPtr SetParent(IntPtr hChild, IntPtr hParent);
    设置VC的窗体的容器为C#的窗体
      

  4.   

    michaelnami:我原来是用的process.start(),可是c#主程序还需要向vc.net编写的窗口程序(exe)随时传递bmp图形数据,我用共享内存传的,头说不安全,而且接口不好。
    zgke:我不太懂您的做法。能不能把vc程序作为一个直接添加到c#主程序的解决方案中(添加新项目)?这样是不是就可以从c#主程序直接传递内存数据到vc那个窗口程序?
      

  5.   

    能不能把vc程序作为一个项目直接添加到c#主程序的解决方案中(添加新项目)?这样是不是就可以从c#主程序直接传递内存数据到vc那个窗口程序? 
      

  6.   

    4楼正解啊,调用 WinAPI 找到 VC 窗口的句柄,然后调 WinAPI 里面的 SetParent 把那个 VC 窗口注册到 C# 窗口里面就可以了,具体说传值的话没有涉及过,不过看你说用共享内存传的话,你应该是可以编辑 VC窗口的代码哈,那传值应该就不是什么问题吧
      

  7.   

    关于 process 之间传值应该是有很多解决方案的,常用的是命名管道吧
      

  8.   

    1. 是不是SetParent的两个窗口要属于同一个进程啊?2. 如果可以是不同进程间操作,是不是设为父子窗口后就可以直接在两个窗口间传递内存数据?