欢迎来到天天文库
浏览记录
ID:21946920
大小:903.00 KB
页数:34页
时间:2018-10-25
《dcom配置方法及dcom并行计算程序的构建》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LAODUAN感谢焦龙同学的耐心讲解~~~~1.如何搭建DCOM编程、运行环境N台机器的用户名和密码必须相同。最好是用AdministratorLAODUANLAODUAN进入VC++6.0,打开HelloDcom.dsw,组建工具栏调出来。程序全编译一遍Server->组建->全部组建LAODUANPSAddSub->工具->RegisterControlLAODUAN至此配置完成看两台机器是否可以进行DCOM访问:网上邻居:看访问125.223.8.122是否成功,进入工作组,输入如下:LAODUAN出现如下就证明可以进行通信了。本机IP=1
2、25.223.8.113。测试的时候这里添加自己的IP号就行。如果想连接对方(125.223.8.122),就填对方的IP号即可。这只是一个例子,测试程序而已。以后讲到的IP访问将不是这个样子。运行LAODUAN2.如何新建立一个DCOM工程。ParallelMeshSearch=PMS,原地盖高楼。之前那些事对于例子程序的调通,下面是如何新建立一个DCOM工程。DCOM工程大概分为3个子工程:Server端、代理DLL、Client端。这3部分分别要建立3个工程。2.1建立Server端先建立一个空白的工作区LAODUAN再新建Server端工
3、程PMSLAODUANLAODUANLAODUAN组件接口函数的定义HRESULTPara_MeshSearch([in]longlength,[in,size_is(length)]long*raw_Array,[out,size_is(length)]long*back_Array);组件接口函数的声明LAODUAN在public:里面加入一句话STDMETHOD(Para_MeshSearch)(longlength,long*raw_Array,long*back_Array);组件接口函数的实现向此文件中添加:STDMETHODIMPC
4、PMSCom::Para_MeshSearch(longlength,long*rawArray,long*outArray){//函数功能returnNOERROR;}注意,在编写PMSCom.cpp也就是Server端代码的时候,接口函数中数组rawArray是一个long*类型,在接口函数中不用重新给这个rawArray分配空间。因为调用这个函数的时候实参是一个具体数组。组件注册:一般地,编译完成服务器自动注册选中PMSCom.cpp,再编译!LAODUAN2.2建立代理/存根DLL这2.2节都是在PSPMS工程中的操作。再新建一个工程PS
5、PMSLAODUANLAODUANLAODUAN向PSPMS.def中添加如下内容:LIBRARYPSPMSEXPORTSDllGetClassObjectPRIVATEDllCanUnloadNowPRIVATEDllRegisterServerPRIVATEDllUnregisterServerPRIVATEGetProxyDllInfoPRIVATE把PMS.idl生成的如下4个文件加入到工程中。方法如下:LAODUANLAODUAN在如下位置加入,REGISTER_PROXY_DLL,_WIN32_DCOM在如下位置加入rpcndr.li
6、brpcns4.librpcrt4.lib记得rpcndr.lib前面加个空格LAODUAN编译,连接注册dll:LAODUAN2.3建立客户程序新建一个工程LAODUANLAODUANLAODUANPMS_Client.cpp中的#include"stdafx.h"删了它就可以了。。。否则有出不尽的编译、链接错误。客户端PMS_Client工程必须包含PMS.h和PMS_i.c文件。方法上面都说过了。LAODUAN注意:在客户端,无论编写debug还是release程序,projectsettingc/c++中的codegeneration
7、下的Userun-timelibrary应选DEBUGMultithreadedDLL。下图所示:LAODUANLAODUAN3.代码填充3.1PMS_Client.cpp的框架可能用到的头文件#include#include#include#include#include#include#include"../PMS/PMS.h"//这个一定用得上#defineMAX_SERVER_NUM20//服务器的最大个数usingnamespace
8、std;structPMS_Range{long*Trans_Array;long*Back_Array;longlength;intp
此文档下载收益归作者所有