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

之前程序是用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个回答

你好,
你这里的问题在于使用了 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

lu_gt
可怜白发生 更新链接啦
大约一年之前 回复
qq_22531521
qq_22531521 我已经重新配置过32位的头文件和库文件了,还有那个连接打开后没有内容,不过还是非常感谢
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐