壹念至贱 2019-05-06 13:57 采纳率: 50%
浏览 295
已结题

海康切换到32位后发生obj连接错误应如何解决?

之前程序是用64位做的,现在切换到了32位,重新配置头文件和库文件以后还是无法运行。Error提示:无法解析的外部符号,文件位置是obj。如图:图片说明

我根据提示信息找到代码中的引用

BOOL CHIKVISION::DoLogin()
{
    NET_DVR_DEVICEINFO_V30 DeviceInfoTmp;
    memset(&DeviceInfoTmp, 0, sizeof(NET_DVR_DEVICEINFO_V30));
    LONG lLoginID = NET_DVR_Login_V30("192.168.127.14", 8000, \
        "admin", "admin12345", &DeviceInfoTmp);
    if (lLoginID == -1)
    {
        AfxMessageBox(_T("Login to Device failed!\n"));
        return FALSE;
    }
    m_struDeviceInfo.lLoginID = lLoginID;
    m_struDeviceInfo.iDeviceChanNum = DeviceInfoTmp.byChanNum;
    m_struDeviceInfo.iIPChanNum = DeviceInfoTmp.byIPChanNum;
    m_struDeviceInfo.iStartChan = DeviceInfoTmp.byStartChan;
    m_struDeviceInfo.iIPStartChan = DeviceInfoTmp.byStartDChan;
    return TRUE;
}

发现我的代码与错误提示有略微区别,不知道为什么多出了_imp_的前缀和@4的后缀。
遇到这种问题,应该如何解决

  • 写回答

1条回答

  • 可怜白发生 2019-05-06 18:38
    关注

    你好,
    你这里的问题在于使用了 64bit 来进行链接。 如果需要生成在32bit平台使用的程序,你需要找第三方取得对应的 32bit 版本的库文件
    (静态库 .lib 文件/ 动态库 .dll 文件) 以及对应的 .h 文件,来进行后续开发。

    这里的 _imp_ 是 msvc 根据 Win32 要求进行的正常函数名变形,无需担心。
    具体有关这里的一些信息可以参考 https://docs.microsoft.com/zh-cn/cpp/build/walkthrough-creating-and-using-a-static-library-cpp?view=vs-2019#UseLibInApp

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记