海康威视校招C++岗面经(笔试+一面+二面+三面+Offer)

本文详细记录了作者应聘海康威视C++研发岗的全过程,包括笔试、一面、二面和三面的面试内容,涉及C++、数据结构、计算机网络等基础知识,以及项目经验与设计模式的讨论。面试官提问深入,部分问题存在争议,最终作者获得了Offer,但对海康威视的口碑有所保留。
摘要由CSDN通过智能技术生成

前言

  海康的提前批挺早的,8月份就开始了,尽管海康本身口碑不怎么好,但是海康研究院貌似还不错,听说提前批会大概率进海康研究院,所以网申了海康提前批,岗位是C++研发岗,结果秒拒了,效率还挺高,后来听师兄讲,海康研究院应该只要某些985,像我这种双211渣硕,简历都过不了……
  然后是9月份的正式秋招,总体来说,海康的整体难度不是很高,实验室的小伙伴几乎都拿到海康的Offer了,2019校招的批发价是14K,部分SP达到16~18K,相比于互联网公司略低。

应聘经过

笔试

  海康的在线笔试系统用的是赛码网,而不是牛客,题目挺简单的,30道选择题,20单选10多选,内容涵盖C、C++、数据结构、计算机网络、操作系统(Linux)等等,都很基础,然后是一道问答题,TCP和UDP的区别,然后是编程题,Linux网络编程主机字节序和网络字节序的转换函数的实现,没有难点。

一面

  笔试过了之后,大概一周之内,就会收到面试通知(短信+邮箱),面试时间距离通知时间一般1~2天。海康合肥站面试地点安排在高速开元大酒店(不知道为啥,茫茫多的校招都在高速开元)


  进去之后先是一排HR小姐姐,签到,填一份表格,上面是自己的基本信息,在校成绩,获奖情况,申报岗位和期望薪资等等,填完之后进入排队系统,现场人挺多的,甚至我觉得他们只租了一间小客厅是不是太小气了。下面根据当时的回忆整理一下面试经过。

海康威视相机的采集图像程序可以使用官方提供的 SDK 实现。以下是一个简单的 C++ 程序示例,演示如何使用 SDK 实现海康威视相机的图像采集: ```c++ #include <iostream> #include "HCNetSDK.h" #include "PlayM4.h" using namespace std; // 设备登录参数 NET_DVR_USER_LOGIN_INFO struLoginInfo = {0}; // 设备信息 NET_DVR_DEVICEINFO_V40 struDeviceInfo = {0}; // 实时预览句柄 LONG lRealPlayHandle = -1; // 实时预览回调函数 void CALLBACK RealDataCallBack_V30(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, void* dwUser) { switch (dwDataType) { case NET_DVR_SYSHEAD: if (!PlayM4_GetPort(&dwUser)) { break; } if (dwBufSize > 0) { if (!PlayM4_SetStreamOpenMode(dwUser, STREAME_REALTIME)) { break; } if (!PlayM4_OpenStream(dwUser, pBuffer, dwBufSize, 1024*1024)) { break; } if (!PlayM4_Play(dwUser, NULL)) { break; } } break; case NET_DVR_STREAMDATA: if (dwBufSize > 0 && dwUser != NULL) { if (!PlayM4_InputData(dwUser, pBuffer, dwBufSize)) { break; } } break; default: if (dwBufSize > 0 && dwUser != NULL) { if (!PlayM4_InputData(dwUser, pBuffer, dwBufSize)) { break; } } break; } } int main(int argc, char* argv[]) { // 初始化 SDK NET_DVR_Init(); // 设置登录参数 struLoginInfo.bUseAsynLogin = false; strcpy(struLoginInfo.sDeviceAddress, "192.168.1.100"); struLoginInfo.wPort = 8000; strcpy(struLoginInfo.sUserName, "admin"); strcpy(struLoginInfo.sPassword, "123456"); // 登录设备 LONG lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfo); if (lUserID < 0) { cout << "Login failed, error code: " << NET_DVR_GetLastError() << endl; NET_DVR_Cleanup(); return -1; } // 设置预览参数 NET_DVR_PREVIEWINFO struPlayInfo = {0}; struPlayInfo.hPlayWnd = NULL; struPlayInfo.lChannel = 1; struPlayInfo.dwStreamType = 0; struPlayInfo.dwLinkMode = 0; struPlayInfo.bBlocked = true; struPlayInfo.byProtoType = 0; struPlayInfo.byPreviewMode = 0; // 开始预览 lRealPlayHandle = NET_DVR_RealPlay_V40(lUserID, &struPlayInfo, RealDataCallBack_V30, NULL); if (lRealPlayHandle < 0) { cout << "Start preview failed, error code: " << NET_DVR_GetLastError() << endl; NET_DVR_Logout(lUserID); NET_DVR_Cleanup(); return -1; } // 等待用户按下任意键停止预览 cout << "Press any key to stop preview." << endl; cin.get(); // 停止预览 if (!NET_DVR_StopRealPlay(lRealPlayHandle)) { cout << "Stop preview failed, error code: " << NET_DVR_GetLastError() << endl; NET_DVR_Logout(lUserID); NET_DVR_Cleanup(); return -1; } // 注销登录 if (!NET_DVR_Logout(lUserID)) { cout << "Logout failed, error code: " << NET_DVR_GetLastError() << endl; NET_DVR_Cleanup(); return -1; } // 释放 SDK 资源 NET_DVR_Cleanup(); return 0; } ``` 注意,上述代码仅供参考,具体应根据实际情况进行修改和优化。另外,使用海康威视相机的 SDK 进行图像采集需要注意相机的型号和参数设置。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值