我要发帖 回复

中级会员

7

主题

164

积分

0

专家分

兴趣点(最多三项):

VegaPrime

私信
发表时间 : 2017-5-21 16:51:27 | 浏览 : 120    评论 : 4
如图,通过设置断点,找到是在beginFrame这个函数程序退出,返回0,这是为什么?
QQ截图20170521164907.png
QQ截图20170521164952.png
QQ截图20170521164959.png

最近VR访客

obuil 评论于2017-5-21 21:25:09
先把 循环体内的逻辑清空,再看看能运行吗?

如果还不能运行,就是 循环前的设置代码不对
UE4   |   虚幻引擎   |   Unity VR    |    Hololens
576814620专家组 评论于2017-5-22 14:12:47
obuil 发表于 2017-5-21 09:25 PM
先把 循环体内的逻辑清空,再看看能运行吗?

如果还不能运行,就是 循环前的设置代码不对 ...

循环前的设置代码是什么意思?函数说明是运行beginframe是出现了shutdown的请求,好懵啊
576814620专家组 评论于2017-5-22 17:09:19
obuil 发表于 2017-5-21 09:25 PM
先把 循环体内的逻辑清空,再看看能运行吗?

如果还不能运行,就是 循环前的设置代码不对 ...
  1. #include <vuAllocTracer.h>
  2. #include <vpApp.h>
  3. #include <winsock2.h>
  4. #include <stdio.h>
  5. #include <vpObject.h>

  6. #ifndef UNICODE
  7. #define UNICODE
  8. #endif

  9. #define WIN32_LEAN_AND_MEAN

  10. // Link with ws2_32.lib
  11. #pragma comment(lib, "Ws2_32.lib")
  12. vuAllocTracer m_allocTracer;

  13. class myApp : public vpApp
  14. {

  15. public:

  16.         myApp(){}

  17.         ~myApp()
  18.         {
  19.        m_object->unref();

  20.            if(RecvSocket)
  21.            {
  22.                    closesocket(RecvSocket);
  23.                    WSACleanup();
  24.            }   
  25.         }

  26.         int configure()
  27.         {               
  28.                 m_object=vpObject::find("hummer");
  29.                 assert(m_object);
  30.                 m_object->ref();

  31.                 WSADATA wsaData;
  32.                 sockaddr_in RecvAddr;
  33.             sockaddr_in SenderAddr;
  34.                 int SenderAddrSize = sizeof (SenderAddr);

  35.                 //-----------------------------------------------
  36.                 // Initialize Winsock
  37.             WSAStartup(MAKEWORD(2, 2), &wsaData);

  38.                 // Create a receiver socket to receive datagrams
  39.                 SOCKET RecvSocket = socket(AF_INET,SOCK_DGRAM,0);
  40.                
  41.                 // Bind the socket to any address and the specified port.
  42.                 RecvAddr.sin_family = AF_INET;
  43.                 RecvAddr.sin_port = htons(6666);
  44.                 RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY);

  45.                 bind(RecvSocket, (SOCKADDR *) & RecvAddr, sizeof (RecvAddr));
  46.                
  47.         return vsgu::SUCCESS;
  48.         }

  49.         void run()
  50.         {
  51.         sockaddr_in SenderAddr;
  52.             int SenderAddrSize = sizeof (SenderAddr);
  53.                 char RecvBuf[1024];
  54.                 int BufLen = 1024;
  55.         vuVec3<double> xyz, hpr;
  56.                 while(beginFrame()!=0)
  57.                 {
  58.                         memset(RecvBuf,0,BufLen);
  59.                         recvfrom(RecvSocket,RecvBuf, BufLen, 0,
  60.                                 (SOCKADDR *) & SenderAddr, &SenderAddrSize);

  61.                         vuVec3<double> xyz, hpr;
  62.                         sscanf(RecvBuf, "%lf %lf %lf %lf %lf %lf",
  63.                                 &xyz[0], &xyz[1], &xyz[2], &hpr[0], &hpr[1], &hpr[2]);
  64.                         m_object->setTranslate(xyz[0], xyz[1], xyz[2]);
  65.                         m_object->setRotate(hpr[0], hpr[1], hpr[2]);

  66.                         update();
  67.                         endFrame();

  68.                 }
  69.                 unconfigure();         

  70.         }
  71. private:

  72.     vpObject *m_object;
  73.     SOCKET RecvSocket;

  74. };

  75. int main(int argc, char *argv[])
  76. {
  77.         vp::initialize(argc, argv);
  78.         myApp *app = new myApp;   
  79.         if (argc <= 1)
  80.                 app->define("ACF.acf");
  81.         else app->define(argv[1]);
  82.         app->configure();
  83.         app->run();
  84.         app->unref();
  85.         vp::shutdown();
  86.         return 0;

  87. }
复制代码
扫一扫专家组 认证企业会员 评论于2017-5-23 12:24:57

用winsock实现VEGA车辆和Simulink仿真程序通信对吧   我QQ 1533778530,我做的导弹和Simulink,比较相近,可以聊聊
人有两次生命,出生时,知道自己想要什么时

手机版|VR开发网 |网站地图 统计  津ICP备16006248号

GMT+8, 2017-9-25 05:05 AM

返回顶部