上一节说到使用tao_idl.exe和opendds_idl.exe生成需要的文件,这一节主要介绍如何使用MPC工具生成项目工程
前面说到我们现在已经使用脚本生成了一些文件,那么为什么要生成这些文件,以及这些文件到底有什么用呢?
我们知道idl是DDS数据的基本类型,但是仅仅有数据单位还不够,所以opendds_idl和tao_idl编译器支持代码包括生产的C++类的DCPS数据读出器和数据写入器,并附有IDL代码,以生成数据在网络上传输时打包解包的代码,和必要的类型安全接口。
在%ACE_ROOT%/MPC目录下新建一个demo文件夹(注意文件夹不可出现中文,可能会有意想不到的错误),接下来把所有生成的文件,包括Messenger.idl和Messenger.mpc在内统统放进去,修改Messenger.mpc文件:
project(*idl):dcps{
requires += no_opendds_safety_profile
TypeSupport_Files{
Messenger.idl
}
custom_only = 1
}
project(*publisher): dcpsexe, dcps_tcp{
requires += no_opendds_safety_profile
exename = publisher
after += *idl
TypeSupport_Files{
Messenger.idl
}
Source_Files{
Publisher.cpp
}
}
project(*subscriber): dcpsexe, dcps_tcp{
requires += no_opendds_safety_profile
exename = publisher
after += *idl
TypeSupport_Files{
Messenger.idl
}
Source_Files{
subscriber.cpp
DataReaderListenerImpl.cpp
}
}
新建Publisher.cpp、Subscriber.cpp和DataReaderListenerImpl.cpp文件
切换到MPC根目录,输入命令行:
perl mwc.pl -type vc14
打开工程,就会出现Messenger_Publisher,Messenger_Subscriber和Messenger_Idl三个项目。