社区
进程/线程/DLL
帖子详情
进程间(两个exe)函数调用的方法
wpngc
2004-06-23 05:39:42
请问,用VC6.0如何实现一个exe程序调用另一个exe程序的函数,两个exe都是VC编写的。
多谢各位大虾!
...全文
612
25
打赏
收藏
进程间(两个exe)函数调用的方法
请问,用VC6.0如何实现一个exe程序调用另一个exe程序的函数,两个exe都是VC编写的。 多谢各位大虾!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lmfweng
2004-07-02
打赏
举报
回复
UP
sharkhuang
2004-06-24
打赏
举报
回复
CORBA
dongfa
2004-06-24
打赏
举报
回复
自动化文档支持.
dakwing
2004-06-24
打赏
举报
回复
我实现了一个COM组件(进程EXE内),它提供接口给其他进程访问,然后其他进程实现出接口,实现双向通讯。
即:
EXE:A(包括了出接口 IA)
EXE: B(包括了出接口 IB)
COM组件: C(接口 IC1、IC2...)
过程:
A调用IC1接口,C接受并且解释该消息,调用B的出接口IB,B就可以接受到该消息,然后调用自身相应的函数。反之实现B->A的调用。
kvls
2004-06-24
打赏
举报
回复
废话
beijingshizi
2004-06-24
打赏
举报
回复
loadlibrary()
GetProcAddr
tblue7
2004-06-23
打赏
举报
回复
用CreateProcess函数,可以在一个程序中调用另外一个程序,被调用的程序作为一个子进程。参数比较多,具体间msdn
_j_
2004-06-23
打赏
举报
回复
说的是lianglp()
_j_
2004-06-23
打赏
举报
回复
问题是,楼主说的是进程间的
zpplayer
2004-06-23
打赏
举报
回复
_j_(街头混混甲)说的在理,如果只是一个exe(例如A.exe)导出一个函数给其他exe(例如B.exe)用,那么B.exe可以在其进程内加载A.exe就可以了,当然可以静态链接或者动态连接。
这些和进程间函数调用都扯不上什么关系,那么什么是进程间函数调用呢?举个例子或许可以更好解释,假设进程B想要得到进程A的运行参数,注意这里是进程而不是exe。我们知道要获得进程的运行参数当然是调用GetCommandLine函数(呵呵,地球人都知道),不过当然是要在进程自己内部调用才行(说了句废话)。那么进程B如何调用进程A中的GetCommandLine函数呢?这不进程间函数调用的问题就出来了吧。
其实正如前面有的兄弟提到的只要能得到要被调用函数在它的进程内部的函数地址就行了。我解决这个问题的方法是这样。首先,在进程B中注入一段代码,并申请一块内存区域作为参数传递使用,当然所有这些操作都在进程A中进行的。给出几个关键函数,OpenProcess、VirtualAllocEx、WriteProcessMemory。有心的兄弟因该可以猜出后面的动作了,没错就是调用CreateRemoteThread去运行那段注入到进程B中的代码,这段代码干什么用呢?当然是调用你想调用的函数了比如GetCommandLine啦,并且将调用后的结果写回参数传递区。剩下的事情就是进程B用ReadProcessMemory去读取结果了,当然有个前提就是要等在进程A中的执行线程顺利结束。这里我只是讲了一下大概的思路,其中还有许多具体的实现细节就由大家自己去解决吧。
wqs_qiu_shi
2004-06-23
打赏
举报
回复
明白,学了一招.
原来以为只有dll可以
lianglp
2004-06-23
打赏
举报
回复
在win32下,只要是PE文件格式,都可以用LoadLilrary(Ex)函数进行加载,
很显然,不论是dll或EXE等等,都可以调用其中的导出函数。
wqs_qiu_shi
2004-06-23
打赏
举报
回复
人家问的应该是直接调的情况,
如果回答的是dll,和进程间通讯,我用多线程,和发消息就ok了,还调什么exe
halk
2004-06-23
打赏
举报
回复
你们能告诉我如何实现吗,我也想学习学习.
exe->exe~~~~谢谢.我也有这个需求.
1.别说进程通信的情况,2.别说dll的情况.
-------------------
COM/DCOM也是dll的情况;.exe形式的dll也是dll的情况。
任何分属两个.exe的互相调用,都是进程间通信的情况。
你老人家把这两个全否决了,就只有求神仙了。
wqs_qiu_shi
2004-06-23
打赏
举报
回复
一会不见就升级了,呵呵.gx
_j_
2004-06-23
打赏
举报
回复
对不起,我是混混
:D
wqs_qiu_shi
2004-06-23
打赏
举报
回复
我严重同意你的观点 _j_(街头混混甲)
_j_
2004-06-23
打赏
举报
回复
其实,两进程想实现直接函数调用我觉得是不可能的.
但有很多变通的方法可以实现最后的效果,因为调用函数无外就是想得到处理后的结果.
_j_
2004-06-23
打赏
举报
回复
EXE导出函数我是看过
不过调用的话可行吗?EXE导出函数是这个用途吗??
如果两个EXE分别属于两个进程,知道另一个EXE函数入口地址有什么用??
我认为EXE A导出函数的话,这种函数只能是用于当另一个EXE B把EXE A当做一个普通DLL,并用loadlibrary把EXE A加载为进程内模快时,才能用.
wqs_qiu_shi
2004-06-23
打赏
举报
回复
cxghj(网事如风) ( ) 信誉:101
PiggyXP(小猪◆你快乐于是我快乐) ( ) 信誉:121
你们能告诉我如何实现吗,我也想学习学习.
exe->exe~~~~谢谢.我也有这个需求.
1.别说进程通信的情况,2.别说dll的情况.
加载更多回复(5)
Linux内核源代码情景分析 (上下册 高清非扫描 )
2.3 几个重要的数据结构和函数 2.4 越界访问 2.5 用户堆栈的扩展 2.6 物理页面的使用和周转 2.7 物理页面的分配 2.8 页面的定期换出 2.9 页面的换入 2.10 内核缓冲区的管理 2.11 外部设备存储空
间
的地址映射 2.12 ...
进程
间
调用常用函数
第二个参数只是Win
Exe
c函数的参数,不是one.
exe
的参数。 注意:第一个参数一定是ASCII 2、同步函数 system函数原型: int system(const char *command) 是C库函数 注意: 1)第一个参数为ASCII ,运行时会弹出黑框 2) ...
进程
间
通讯-跨
进程
函数调用
最近有个项目需要用到
进程
间
通讯,所以设计了一个基于管道的
进程
间
函数调用
库,后来因为其他原因没被采用。但是觉得就这样扔掉太可惜了,索性把它放出来,说不定能有用。 设计规则如下: 1. 使用Windows管道作为...
编程 - 回调函数、共享内存概念与使用,以及
进程
间
函数调用
的讨论
关于
进程
间
函数调用
,以及回调函数、共享内存的使用 最近在做项目时,需要调用一个第三方的库和框架,在项目进行一段时
间
之后,突然发现对该第三方的库以及框架的实现机制不太了解,现根据其函数声明以及使用方式...
浅谈C语言
函数调用
与系统调用
1.
函数调用
和系统调用概述 ...其实
函数调用
和系统调用还是有区别,我们通过下图先有个全局的了解! 图1-1 系统功能模块关联图 从图1-1 我们可以知道应用程序访问内核,主要通过两种方式:中断和系统...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章