进程外组件的编写步骤

进程外组件的编写步骤

ID:20359593

大小:130.00 KB

页数:13页

时间:2018-10-12

进程外组件的编写步骤_第1页
进程外组件的编写步骤_第2页
进程外组件的编写步骤_第3页
进程外组件的编写步骤_第4页
进程外组件的编写步骤_第5页
资源描述:

《进程外组件的编写步骤》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、进程外组件实现在此创建一个名为Name.exe的服务器,该服务器包含一个COM类,该类带有一个用户接口Imachine。该接口只有一个方法Getname。该方法返回一个服务器所在计算机的主机名的字符串。在实现了服务器程序后,还要建立一个客户程序来对此服务器进行调用,调用的结果就显示服务器所在计算机的主机名的字符串。进程外组件的编写步骤进程外组件编写过程如下:1.使用ATLCOMAppWizard来创建新的工程Name。在第一步中为服务器类型选择Executable(EXE)。2.插入新的ATL对象的Machine。接收所有的默认名称。它的属性是单线程模式、用户接口和不使用聚合。3

2、.加入带有输出参数BSTR*pName的方法GetName。进程外组件4.用下列代码实现方法GetName。在此使用Win32函数GetComputerName和ATL包装类CComBSTR。STDMETHODIMPCMachine::GetName(BSTR*pName){//TODO:Addyourimplementationcodeherecharbuf[MAX_COMPUTERNAME_LENGTH+1];DWORDsize=MAX_COMPUTERNAME_LENGTH+1;::GetComputerName(buf,&size);CComBSTRbstr(buf);*

3、pName=bstr;returnS_OK;}进程外组件5.增加下面两个用户联编步骤,运行make文件以建立代理、存根程序DLL并对其进行注册。请看下页的图中所示的窗口。可以从菜单Project—Setting中启动下图的对话框。nmakeNameps.mkregsvr32Nameps.dll6.联编该工程。进程外组件调用进程外组件程序的编写客户程序的编写1.建立一个标准的MFCAppWizard(exe)工程。2.在引用程序类型中选择“D基本对话框”3.把刚才建立的服务器程序中的name.h和name_i.c复制到测试目录中。代码4.在按钮的单击事件中写代码如下:voidCNa

4、meTestDlg::OnGetname(){IMachine*pMachine;HRESULThr;hr=CoCreateInstance(CLSID_Machine,NULL,CLSCTX_SERVER,IID_IMachine,(void**)&pMachine);if(FAILED(hr)){MessageBox("CoCreateInstancefailed");return;}代码BSTRbstr;hr=pMachine->GetName(&bstr);if(FAILED(hr))MessageBox("GetNamefailed");else{_bstr_tname

5、(bstr,false);SetDlgItemText(IDC_NAME,(constchar*)name);}pMachine->Release();}代码voidCNameTestDlg::OnClear(){SetDlgItemText(IDC_NAME,"");}当然要在此文件的开始添加头文件如下:#include"stdafx.h"#include"NameTest.h"#include"NameTestDlg.h"#include"name.h"#include"name_i.c"#include前三个头文件是此文件中自己生成的要添加的就只有后三个

6、文件代码5.在对话框初始化函数中对OLE进行初始化,代码如下:BOOLCNameTestApp::InitInstance(){if(!AfxOleInit())AfxMessageBox(“AfxOleInitfailed”);returnFALSE;}运行客户程序6.编译客户端程序并运行,其显示窗口和结果如下:EXE服务器的文件服务器端的有关文件如下:name.regs注册脚本文件name.idl接口定义文件nameps.mk代理/存根程序的DLL的make文件下面文件是由MIDL编译器创建的:name.h接口定义name_i.c定义所有的GUIDname_p.c代理/存根程

7、序的实现代码dlldata.c接口参数的调度代码下面文件是在联编工程时创建的:name.tlb描述对象和其接口的二进制类型库name.exe服务器可执行文件nameps.dll代理/存根程序DLL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。