如何实现外部程序调用本程序函数的功能

问题描述

我做了一个发短信的软件A,功能已经实现,里面有一个SentMessage函数来完成发送操作,只需要输入短信内容和号码两个参数就完成动作:SentMessage(短信内容,号码)。现在我想做另外一个程序B,想调用程序A的SentMessage函数来发短信,请问该如何做呢?请大家指教!不胜感激!

解决方案

本帖最后由 lgk99 于 2015-08-15 16:19:22 编辑
解决方案二:
在vs上,在你的第二个解决方案中,“添加->现有项目”,然后选择第一个解决方案中的工程。然后再在第一个工程中“添加->引用->项目”,选择刚引入的工程,这就可以在新的工程中访问钱一个工程的public的对象和方法了。
解决方案三:
引用1楼sp1234的回复:

在vs上,在你的第二个解决方案中,“添加->现有项目”,然后选择第一个解决方案中的工程。然后再在第一个工程中“添加->引用->项目”,选择刚引入的工程,这就可以在新的工程中访问钱一个工程的public的对象和方法了。

请问这是一种怎么的调用方法呢?是把软件A整个工程作为一个DLL调用?这种调用是不是需要在软件A正常运行的情况下才有效??
解决方案四:
引用2楼lgk99的回复:

Quote: 引用1楼sp1234的回复:
在vs上,在你的第二个解决方案中,“添加->现有项目”,然后选择第一个解决方案中的工程。然后再在第一个工程中“添加->引用->项目”,选择刚引入的工程,这就可以在新的工程中访问钱一个工程的public的对象和方法了。

请问这是一种怎么的调用方法呢?是把软件A整个工程作为一个DLL调用?这种调用是不是需要在软件A正常运行的情况下才有效??

exe这里就是作为一种dll来引用的。你的A中的窗体当然还是可以B的代码来实例化、使用,只不过是A中的Program类(里边也不过就有5、6行代码而已)也许不被B去调用它而已。一个exe引用其他的exe,这是很正常的。不要以为exe只能引用dll。
解决方案五:
这个要看B是让A去送,还是B使用A的方法(逻辑)由B自己去发送,这是两码事,你没有说清楚
解决方案六:
引用4楼dongxinxi的回复:

这个要看B是让A去送,还是B使用A的方法(逻辑)由B自己去发送,这是两码事,你没有说清楚

我是想让B程序传信息给A程序,然后由A程序去发送短信,请问用什么方法呢?如果是B程序使用A程序的方法(逻辑),再由B自己去发送又用什么办法呢?请高手指教,我想选一种简洁高效的方式!
解决方案七:
B代码中引用A,跟所谓的“B程序让A程序去发”是两回事。当你的B代码中引用A的工程(哪怕没有源代码而只有exe也是一样),那么B程序在运行时,A就等于被B“拥有”了。因为B程序中可以实例化并使用你在A程序中写的所有public的对象,例如所有的窗口,所有的方法库中的方法,等等。这本来就是n个工程独立开发、然后发布给同事的其它工程相互引用的机制所支持的。这是开发的一个基础知识,不可不熟悉。至于说“两个程序”跨进程通讯,那是另一回事,是需要程序双方分别设计一堆通讯机制、一堆协同功能。你现在最好也先不要纠结这个。
解决方案八:
引用5楼lgk99的回复:

如果是B程序使用A程序的方法(逻辑),再由B自己去发送又用什么办法呢?

比如说人家.netframework给你封装了一个MessageBox类,放在System.Windows.Forms.dll文件中,被你的程序引用了,于是你就可以使用MessageBox.Show方法来显示对话框了。这就是调用其它工程的方法。你的A相当于就是System.Windows.Forms提供了public的MessageBox类一样,提供它自己的对象和方法可以被其它工程访问,就行了。
解决方案九:
像你上面说的,对面桌面应用,一般先想到的是用户自定义消息,WM_USER,如果你了解window消息循环,就比较简单了B调用win32APIPostMessage(A的窗口句柄,自定义消息代码,消息参数,自定义参数)A程序overrideForm的WndProc(Msg)来处理这个消息不过,如果B引用A也可以发送,那还是直接引用再调用,避免两个程序之间协同工作
解决方案十:
既然两个程序都是你做的,那为什么不把A的发信息功能做成DLL,供两个程序调用?如果A不是你做的,B要调用A的功能,我一般的做法是使用API啦,找到A的文本框的句柄、A的“发送”按钮的句柄,再由B把信息发过去A的文本框,自动点击按钮。当然,A是你自己做的也能用API,不过就显得麻烦点了。

时间: 2024-09-17 12:37:38

如何实现外部程序调用本程序函数的功能的相关文章

c语言-求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行

问题描述 求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行 写说明一下代码,代码主要是要在控制台模拟浏览器对tab和网页前进后退的一些操作 再说明一下问题,问题在于brwosertab类和webinformation类的西沟函数,一旦在这两个类的西沟函数里面写上delete 指针名字:整个程序就不能运行了,最关键的是我不太明白为什么程序要调用这两个函数,因为我感觉我都是动态对象啊.最后说明一下,我很菜,只有一点java编程的经验,所以第一次应对c++我真的需要一些帮助.谢谢你们了! 解决方

小工具 指令-linux下有没有可能将程序函数被像系统指令一样调用

问题描述 linux下有没有可能将程序函数被像系统指令一样调用 有没有可能将程序函数被像系统指令一样调用,就是程序在后台运行时只用终端 去调用程序里的函数,这个函数是程序的其中一部分. 意图是查看这个程序后台运行过程中里面变量的值.能否实现?谢谢!! 解决方案 if you use eclipse or .net studio to develop,you can run your project in debug mode

labview+matlab-在Labview中调用Matlab程序时出错,错误提示Function函数无效

问题描述 在Labview中调用Matlab程序时出错,错误提示Function函数无效 请大神们帮帮忙,这个问题怎么解决啊? 解决方案 http://wenku.baidu.com/link?url=c_f-NBJBOaw_RveWarfinIctyj5GYUQlJagTkpE_eed4JkesENfgIO9JMUYs6uU9bW8onhml7JJ5eO2V80LcmS0GsnYdNwYGEzeUgACOguu

vc-VC里怎样实现向另一应用程序发送命令行参数?需要调用哪些API函数?

问题描述 VC里怎样实现向另一应用程序发送命令行参数?需要调用哪些API函数? 现要写一个程序甲,甲向乙程序发送命令行参数,乙解析该参数并作相应操作, 现在问题是具体甲怎样向乙发送命令行参数?需要调用哪些API函数? (抱歉还是菜鸟,没有金币悬赏~谢谢各位大神了!) 解决方案 如果a是启动进程B的话,那么CreateProcess就可以启动B,同时带上命令行参数,B解析参数进行动作. 如果B已经启动了,这个其实就是进程通信,最简单的方式是发送消息,PostMessage.B根据消息进行对应的操作

设置-如何在.Cpp程序中调用.c程序中的函数?

问题描述 如何在.Cpp程序中调用.c程序中的函数? 我在软件中需要把mp3文件转换成wav文件.为此从网上下载了一个转换程序.但把这些转换程序的文件加入到我的用VC6.0编写的MFC工程中后却发现编译通不过.为此,我把Project Settings中这些文件对应的Precompiled Headers都设置成Not using precompiled headers.这样,编译能通过了.但连接却通不过.我的具体程序和现象如下: 我在我的一个.cpp文件中需要调用如下函数: BOOL mp3T

调用.net程序集中的方法

虽然Biztalk Server提供了众多的内置功能,然而在一些情况下可能还需要调用程序集中的函数.因为在.Net程序集中,可以非常方便地调用Web Service.访问数据库:另一方面,有些函数是程序集中已经写好的,为了增加软件的复用,便于软件版本的管理,使用现有的程序集也在情理之中. 本文通过一个简单实例,介绍Biztalk应用中调用程序集的方法.这个实例完成的功能,在调用Web Services一文中实现过,只不过实现的方式用所差别,一个是调用Web Service,一个是调用.net程序

java调用matlab程序

在实际Java编程中,我们可能想要使用matlab编写一些复杂的数值计算算法,然后导入我们的java项目中调用.这首先需要我们matlab的jdk版本和java项目的jdk版本对应一致.想查看matlabjdk版本,可以在matlab命令行中输入version -java来查看,会看到类似下面的内容: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode .下面我们来看看mat

用Visual C#调用Windows API函数(转)

visual|window|函数 用Visual C#调用Windows API函数 北京机械工业学院研00级(100085)冉林仓       Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力.Visual C#和其它开发工具一样也能够调用动态链接库的API函数..NET框架本身提供了这样一种

JavaScript EE,第2部分:用Ajax调用远程JavaScript函数

在本系列的第1部分中,您学习了如何在Asynchronous JavaScript and XML(Ajax)和Java Platform, Enterprise Edition(Java EE)应用程序中使用javax.script API.本文将展示如何为同时在服务器和客户机上使用JavaScript的Web 应用程序实现远程过程调用(Remote Procedure Call,RPC)机制.您还将学习一些有趣的技巧,例如用JavaScript实现Java接口.构建XMLHttpReques