回 帖 发 新 帖 刷新版面

主题:如何在vb的sstab中引用已经做好的exe文件?

我做了一个计算粮食价格的软件,只有一个exe文件,现在我做了一个另外的软件,用sstab做了几个不同的页面,其中一个页面我想引用前面的exe文件,整体的引用,应给怎么做?如果我只想引用这个软件所计算出来的部分结果,那又该怎么做呢?
如果可以实现,那我就可以分别做几个exe,然后用一个大的sstab框架把这几个exe都集成在一起,但是这样如何能在不同的exe之间交换数据文件呢?

回复列表 (共9个回复)

沙发


自己顶一下,别沉了。

板凳

1、让exe导出函数,你来调用,类似DLL导出函数
2、直接写成控件

3 楼

不是让被的程序调用这个exe的运算结果,而是在别的程序的界面直接打开这个exe程序。

4 楼

那是你不知道你的任务应该做些什么

5 楼


我知道我要引用的软件是做什么的,只是我想把这个软件集成在新作的软件上,这样用新软件的时候就可以直接使用旧软件了,这样就不需要再重新写代码了。
下面这张图片就是我原来做的软件
[img]http://blog.pfan.cn/upfile/201004/20100406181441.jpg[/img]
这个是新作的软件
[img]http://blog.pfan.cn/upfile/201004/20100406181452.jpg[/img]
我想在新软件里提供旧软件的功能,但是不想再重新写一遍代码,只是简单的想在tab1的位置上将旧软件集成在上面,这其中不涉及程序之间的数据交换问题,应该怎么实现?

6 楼

俺当然知道你的意思,是你不知道俺的意思

算了,你这么一意孤行,就这么做吧:
CreateProcess,为你的旧程序创建一个新进程
遍历所有的窗体,用GetWindowThreadProcessId比对进程ID,如果和这个ID,就判定取得的窗体是这个进程下的窗体
然后用这个取得的窗体句柄,SetParent到你的Tab里

至于有什么副作用,就不作任何担保

7 楼

为什么不使用Shell语句呢?当用户点击选项卡时,就用Shell打开老程序。提示:也可使用API函数ShellExecute

8 楼

shell我刚试过,但是shell是另外打开这个文件的,我不希望另外打开,我想让程序调用这个exe,就像集成在一起一样。
merry05:你的方法我确实没太看懂,不过我感觉这样挺麻烦的还不如我重新做简单。

9 楼

[quote]shell我刚试过,但是shell是另外打开这个文件的,我不希望另外打开,我想让程序调用这个exe,就像集成在一起一样。
merry05:你的方法我确实没太看懂,不过我感觉这样挺麻烦的还不如我重新做简单。[/quote]

你要做的事,开启你的旧程序,然后取得那个窗体句柄,拼到Tab下面
用SetParent的确能办到,但是你要先取得窗体句柄,但SetParent之后,消息循环会变成怎么样,没去了解

所以我前面说把所有的功能函数在exe中导出,你在新程序里直接调用就好;或者把旧程序改成一个ActiveX控件,在新程序里直接引用,这样来的方面

我来回复

您尚未登录,请登录后再回复。点此登录或注册