有一个单独的函数在那里放着
可以随时反复用
只需要一些参数就可以了
然后如果你哪里需要了】
就把他调用一下
不是有一个专门的调用函数的语句嘛?
写出一句把那个单独的函数调一下
那个单独的函数就是被调用的
而你写的那个调用函数的那句话即使函数调用
楼主你好!要实现这样的功能,相当容易!
为你举个例子:
我们假设:
主程序(调用者)为DemoMainDlg.exe
被调用程序为ToRun.exe
那么,在你的DemoMainDlg.exe里需要的位置,打开ToRum.exe,建议使用WinExec或者ShellExecute,前者打开目录容易,简单有效,后者,可以指定打开其他路径文件的具体的形式,比如打开后最大化显示,等等。
在打开后,判断:
ToRun.exe是否已经被打开。如果打开,则关闭DemoMainDlg.exe
判断的方法,用::FindWindow()这个函数,第一个参数为类名,第二个参数为窗口标题,类名即窗口在编写的时候为他指定并注册成功的类名(但并非是对话框类的名字),比如,QQ窗口的类名为“TXGuiFoundation”,标题为“QQ2010”。
如果找到了被调用者,即ToRun.exe窗口的句柄,则关闭自己,即DemoMainDlg.exe
具体代码大致是这样,你自己整理一下,比如可以放到按钮事件里:
以打开QQ登录器为例:
ShellExecute(NULL,L"open",L"D:\\Program Files\\Tencen\\Bin\\QQ.exe",NULL,NULL,SW_SHOW)
HWND hWndQQ = ::FindWindow(NULL,L"QQ2010")
if(hWndQQ)
::SendMessage(this->m_hWnd,WM_CLOSE,0,0)
else
MessageBox(L"QQ打开失败!",L"提示")
希望能对你有所帮助,谢谢!
这两个定义是相对的。。。比如说你自己定义编写了一个函数,然后在后面的编写语句中要用到你之前编写的函数。。你引用了。。那个函数就是被调用函数。。你正在写的那个主函数就是调用函数。。.......
void try(int x,int y,int z)
{
........
}
main()
{
int x,y,z
......
try(x,y,z)
.......
}
函数try就是被调用函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)