CN100407141C - 一种实现软件结合的方法 - Google Patents
一种实现软件结合的方法 Download PDFInfo
- Publication number
- CN100407141C CN100407141C CN2006100744341A CN200610074434A CN100407141C CN 100407141 C CN100407141 C CN 100407141C CN 2006100744341 A CN2006100744341 A CN 2006100744341A CN 200610074434 A CN200610074434 A CN 200610074434A CN 100407141 C CN100407141 C CN 100407141C
- Authority
- CN
- China
- Prior art keywords
- software
- window
- combined
- conjunction
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明适用于计算机软件领域,提供了一种实现软件结合的方法,结合软件调用被结合软件的用户界面,并与被结合软件进行数据交换,结合软件和被结合软件分别运行在独立的进程,包括:在结合软件设置一个窗口标识,用于唯一对应一个窗口;被结合软件调用所述窗口标识,将用户界面作为子窗口嵌套进所述窗口标识对应的窗口中;在被结合软件设置应用编程接口;结合软件通过调用所述应用编程接口控制被结合软件的软件行为。应用本发明在实现软件结合时,可以节省开发成本及开发的复杂性,避免结合的软件双方需要公开实现方法或者源代码,便于合作,并能提高开发效率。由于软件双方运行于独立进程,互不干扰,也减少了软件结合带来的程序逻辑复杂性。
Description
技术领域
本发明属于计算机软件领域,尤其涉及一种实现计算机软件之间相互结合的方法。
背景技术
在计算机通信和应用过程中,软件之间为了达到功能上的互补,经常需要软件之间互相结合。实现软件调用和结合的通常做法是将其中一个软件的代码进行抽离,另一个软件包含调用。如果存在用户图形界面上的结合就更加复杂,需要将一个软件的用户图形界面在另一个软件重新实现,再调用原来的数据运算逻辑。
这种软件调用和结合方式造成软件开发工作量大,互相结合的软件都需要做出改动;同时,代码逻辑上的结合增大了调试错误的复杂性。另外需要至少有一个软件公开软件实现方法,甚至程序源代码。
发明内容
本发明的目的在于解决现有技术中存在的在实现软件调用和结合时,造成软件开发工作量大、增大调试复杂性以及需要公开软件实现方法的问题。
为了实现发明目的,本发明提供了一种实现软件结合的方法,结合软件调用被结合软件的用户界面,并与被结合软件进行数据交换,所述结合软件和被结合软件分别运行在独立的进程,所述方法包括:
在结合软件设置一个窗口标识,用于唯一对应一个窗口;
被结合软件调用所述窗口标识,将用户界面作为子窗口嵌套进所述窗口标识对应的窗口中;
在被结合软件设置应用编程接口;
结合软件通过调用所述应用编程接口控制所述被结合软件的软件行为。
所述窗口标识为窗口句柄,所述窗口句柄为一个唯一标识一个窗口的数据。
所述窗口标识进一步包括窗口标题、窗口风格、窗口类名或者窗口注册名。
应用本发明在实现软件结合时,可以节省开发成本及开发的复杂性,同时避免结合的软件双方需要公开实现方法或者源代码,便于合作,并能提高开发效率。由于软件双方运行于独立进程,互不干扰,也减少了软件结合带来的程序逻辑复杂性。
附图说明
图1是软件之间进行界面嵌套的实现示例图;
图2是软件之间调用API的实现示例图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明中,当软件之间需要进行相互结合时,其中结合软件提供一个窗口标识,用于唯一对应一个用户界面。窗口标识可以是窗口句柄,也可以是特殊的窗口标题、窗口风格、窗口类名或者窗口注册名等。窗口句柄是Windows操作系统中用来唯一标识一个窗口的32位数据。被结合软件将自身的用户界面以子窗口的形式嵌套进结合软件,从而结合了软件界面及其资料信息。软件双方都运行在独立的进程,运行过程互不干扰,两者之间数据交换通过API(Application Programming Interface,应用编程接口)调用的方式进行,从而驱动数据的改变及其界面变化。
如图1所示,A软件根据B软件提供的窗口标识,通过嵌套子窗口的形式将自身的用户界面结合到B软件中,用户界面包含了联系人信息。如图2所示,B软件通过调用A软件进程提供的API,如联系人资料更新接口、联系人更新事件通知、联系人删除接口、联系人添加接口实现进程间通讯等用户界面中的驱动数据改变及界面变化。
为了更清楚的说明本发明的实现,以下提供部分关键源代码示例:
//B软件程序中,嵌套A软件窗口的代码示例
//声明创建A软件的编程接口
IACreator*pACreator;
//创建/获得ACreator的接口,系统唯一的
CoCreateInstance(CLSID_ACreator,NULL,CLSCTX_LOCAL_SERVER,IID_IACreator,(VOID**)&pACreator);
//将B软件的窗口句柄传递给A软件,A软件使用该窗口句柄信息将自己的窗口嵌套进来
VARIANT vCreateParam;
vCreateMode.vt=VT_I4;
vCreateMode.lVal=(long)pThis->m_dlgFrame.GetSafeHwnd();pACreator->CreateObject(vCreateParam);
//B软件程序中,调用A软件编程接口控制A软件行为
//获得A软件编程接口
IAAppAPI*pAAPI;
pDisp->QueryInterface(IID_IAAppAPI,(void**)&pAAPI);
//改变A软件窗口标题为“A窗口-B软件”
VARIANT vResult={0};
pAAPI->Call(4,COleVariant(″A窗口-B软件″),&vResult);
//B软件程序中,通过监听A软件事件通知回调接口,获知A软件的变化
void CAAPIEvents::OnEvent(VARIANT*pObjectID,LONG
lEvent,VARIANT*pProperty)
{
CString strObjID(pObjectID->bstrVal);
if(0==strObjID.CompareNoCase(″DataObj″))
{
//A软件数据变化
}
else if(0==strObjID.CompareNoCase(″StatusObj″))
{
//A软件网络状态变化通知
}
本发明通过使用嵌套窗口的方式实现了软件之间的互相结合,大大节省了开发成本及其复杂性,同时通过API的方式进行进程间通讯对数据进行驱动和对界面进行控制,避免了结合的软件双方需要公开实现方法或者源代码的问题,从而便于合作,开发效率也随之提高。由于软件双方运行于独立进程,互不干扰,也减少了软件结合带来的程序逻辑复杂性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种实现软件结合的方法,结合软件调用被结合软件的用户界面,并与被结合软件进行数据交换,其特征在于,所述结合软件和被结合软件分别运行在独立的进程,所述方法包括:
在结合软件设置一个窗口标识,用于唯一对应一个窗口;
被结合软件调用所述窗口标识,将用户界面作为子窗口嵌套进所述窗口标识对应的窗口中;
在被结合软件设置应用编程接口;
结合软件通过调用所述应用编程接口控制所述被结合软件的软件行为。
2.如权利要求1所述的方法,其特征在于,所述窗口标识为窗口句柄,所述窗口句柄为一个唯一标识一个窗口的数据。
3.如权利要求1所述的方法,其特征在于,所述窗口标识进一步包括窗口标题、窗口风格、窗口类名或者窗口注册名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100744341A CN100407141C (zh) | 2005-09-30 | 2006-04-08 | 一种实现软件结合的方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200510100175.0 | 2005-09-30 | ||
CN200510100175 | 2005-09-30 | ||
CN2006100744341A CN100407141C (zh) | 2005-09-30 | 2006-04-08 | 一种实现软件结合的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1940866A CN1940866A (zh) | 2007-04-04 |
CN100407141C true CN100407141C (zh) | 2008-07-30 |
Family
ID=37959078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100744341A Active CN100407141C (zh) | 2005-09-30 | 2006-04-08 | 一种实现软件结合的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100407141C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101539854B (zh) * | 2008-01-24 | 2012-10-31 | 西安电子科技大学 | 一种异构软件界面集成的实现方法 |
CN102622176A (zh) * | 2012-02-24 | 2012-08-01 | 青岛海信移动通信技术股份有限公司 | 一种应用程序操作界面的处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020196279A1 (en) * | 1995-11-13 | 2002-12-26 | Marc Bloomfield | Interacting with software applications displayed in a web page |
BE1014709A3 (nl) * | 2002-03-18 | 2004-03-02 | Acunia Nv | Werkwijze en inrichting voor het geintegreerd gebruik van software. |
CN1629803A (zh) * | 2003-12-18 | 2005-06-22 | 腾讯科技(深圳)有限公司 | 在宿主程序界面中嵌入第三方界面的方法 |
CN1664780A (zh) * | 2005-03-24 | 2005-09-07 | 上海全富汉得软件技术有限公司 | 基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法 |
-
2006
- 2006-04-08 CN CN2006100744341A patent/CN100407141C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020196279A1 (en) * | 1995-11-13 | 2002-12-26 | Marc Bloomfield | Interacting with software applications displayed in a web page |
BE1014709A3 (nl) * | 2002-03-18 | 2004-03-02 | Acunia Nv | Werkwijze en inrichting voor het geintegreerd gebruik van software. |
CN1629803A (zh) * | 2003-12-18 | 2005-06-22 | 腾讯科技(深圳)有限公司 | 在宿主程序界面中嵌入第三方界面的方法 |
CN1664780A (zh) * | 2005-03-24 | 2005-09-07 | 上海全富汉得软件技术有限公司 | 基于Oracle AQ技术实现Oracle Form9i的Web嵌入的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1940866A (zh) | 2007-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6167316A (en) | Distributed object-oriented building automation system with reliable asynchronous communication | |
US6633313B1 (en) | Event routing mechanism in a computer system | |
US7950024B2 (en) | Mechanism for transparently interfacing with a third party version control system | |
US20090144695A1 (en) | Method for ensuring consistency during software development | |
AU2002318249A1 (en) | System and method for transaction processing with transaction property feature | |
AU2002318249A2 (en) | System and method for transaction processing with transaction property feature | |
CN104517181B (zh) | 一种核电站企业内容管理系统及方法 | |
CN101609398B (zh) | 网络应用的开发系统和方法 | |
CN102222017A (zh) | 通过不可见接口实现不符合abi特征的方法和系统 | |
US20050177836A1 (en) | Providing common memory management code to objects that are instances of different classes | |
CN111880866B (zh) | 跨进程回调执行方法、装置、设备及存储介质 | |
CN104657149A (zh) | 一种存储系统的管理模块的软件框架实现方法 | |
CN102087594A (zh) | 扩展点和插件的管理方法和装置 | |
Medvidovic et al. | Software architecture and mobility: A roadmap | |
US7188149B2 (en) | Storage operating data control system | |
Horvat et al. | Mobile agents and Java mobile agents toolkits | |
JP2005531050A (ja) | オブジェクトをプログラミングするための簡略化されたメモリの割当ての取消 | |
CN100407141C (zh) | 一种实现软件结合的方法 | |
Julien et al. | Active coordination in ad hoc networks | |
US7831958B2 (en) | Systems and methods for distributing updated information | |
CN101819524B (zh) | Rfid阅读器的访问方法及其接口驱动设备 | |
Brugali et al. | Service component architectures in robotics: The sca-orocos integration | |
Schmidt et al. | Experience using design patterns to evolve communication software across diverse os platforms | |
KR20080055812A (ko) | 스크립트 어플리케이션 프레임워크 | |
CN101004677A (zh) | 一种基于corba规范的case环境工具总线实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |