忽然发现从C#到C++传递消息是这么好玩的一件事,哈哈哈
如何在C#中“打包”即将传递的消息
1、如下图,我需要在C#中将下列变量全部打包,传递给C++程序。
2、为了传递这些参数,我新定义了以下变量:
3、此外,我又定义了3个表示长度的变量,也顺便传递:
4、需要特别注明:如果需要传递n个int型变量,那么int[] CommandID的长度应定义为n+2,即int iSize = n + 2,唁昼囫缍这是因为CommandID[0]需要存储插件ID,CommandID[2]需要存储命令ID,CommandID[3]开始才是想要传递的数值。
5、“如何在C#中“打包”即将传递的消息”范例代码
如何书写传递消息动作的代码
1、在C#中“打包”完毕即将传递的消息后,需要书写一行代码将“打包”好的消息传递出去,烂瘀佐栾这一行代码就是OgreInterf锾攒揉敫ace.g_Command(CommandID, iSize, douPara, dSize, strPara, cSize, true);
在C++中如何接收消息
1、在C++中接收消息,需要四大步骤:(1)在C++插件工程的类中写入一个int型私有变量mTestCommandID,用来存储接收到的命令ID;
2、(2)在C++插件皤材装肢工程的类中写入一个public方法OnCommand(),用来接收OgreInterface类中g_Command方法传递过来的参数;
3、(3)在C++插件工程的类的构造函数中,写入本插件的ID号,并初始化mTestCommandID;
4、(4)在OnCommand()写具体的代码,取出接收到的参数。