现在有几个exe(有源代码,都是MDI,具有相似的菜单),想把它们转换为ActiveX dll,并去掉,然后在另一个exe(也是MDI)中调用,有好的解决方案吗?1)有没有什么工具可以自动转换?2)如果修改源代码,最少改动的方案是什么?3)......
如果能解决,那么我会另开帖给分(500分)。先谢了!!

解决方案 »

  1.   

    是不是做成ActiveX exe会好一些问题是你要把你代码的哪一部分封装
      

  2.   

    首先要明确,在一个程序中无法调用一个以上的MDI窗体,只得把另外的MDI窗体变为SDI.
    如果是转换的话都看是什么级别的,是要把业务层与表现层分开的话,那么还不如重写代码,如果不分开的话,建一个新工程,添一个class,添加一个现有的EXE的窗体,在class里写一个方法
    如:
    public function showing() as boolean
      frmexefrom.show vbmodal
    end fucntion
    这样就行了.不过说实话,这样的类真没有什么意思,只能让工程可执行文件小一点.
      

  3.   

    rainstormmaster,谢谢你的回复!其实我要就解决问题的不涉及封装,主要是将不同exe中的窗体,放在同一个exe中,感觉起来像一个单一的程序一样。具体地说,比如有A.exe和B.exe两个程序,都是MDI程序,其中A包含子窗体A1、A2、A3,B包含子窗体B1、B2,现在要做一个C.exe,其中去掉A和B的主窗体,包含A1、A2、A3、B1、B2子窗体。另外,再请教一个问题将exe转换为ActiveX EXE和Active dll的区别是什么?谢谢!
      

  4.   

    golden24kcn,感谢关注!有时候情况比较复杂,不是仅用frmexefrom.show就能解决,比如说,需要frmexefrom上的菜单移到MDI主窗体上,而且该窗体要作为MDI主窗体的子窗体,但该窗体和MDI主窗体不在同一工程内。希望能和你进一步讨论!
      

  5.   

    在现有程序中加入运行参数,只供指定程序调用即可。
    sub Main()
    dim Passwords as string
    Passwords=command
    if Passwords<>"1234567" then exit sub
    ....
    ....
    end sub以下在主程序中:
    sub Main()
    dim Passwords as string
    Passwords="1234567"
    shell app.path+"\MyEXE.exe "+Passwords
    ....
    end sub