我的一個程式在裝VC的電腦1上沒有問題,打包后安裝
在沒有裝VC得電腦2上出現了一個問題提示:
d:\agent\_work\3\s\src\vctools\vc7libs\ship\atlmfc\src\winocc.cpp
Line:377
電腦1上打開你的 VS 目錄,比如
E:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\atlmfc\src\mfc目錄下,看看winocc.cpp 檔案中的斷言出錯位置。
void AFX_CDECL CWnd::InvokeHelper(DISPID dwDispID, WORD wFlags, VARTYPE vtRet,
void* pvRet, const BYTE* pbParamInfo, ...)
{
ASSERT(m_pCtrlSite != NULL); // not an OLE control (not yet, at least)------------------出錯位置
if (m_pCtrlSite == NULL)
return;
va_list argList;
va_start(argList, pbParamInfo);
m_pCtrlSite->InvokeHelperV(dwDispID, wFlags, vtRet, pvRet, pbParamInfo,
argList);
va_end(argList);
}
代碼單步除錯,以下代碼會走到377行
if (m_SerialComm.get_PortOpen())
{
m_SerialComm.put_PortOpen(false); //關閉串口
}
void put_PortOpen(BOOL newValue)
{
static BYTE parms[] = VTS_BOOL ;
InvokeHelper(0x14, DISPATCH_PROPERTYPUT, VT_EMPTY, nullptr, parms, newValue);
}
BOOL get_PortOpen()
{
BOOL result;
InvokeHelper(0x14, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, nullptr);
return result;
}
uj5u.com熱心網友回復:
貌似用了串口控制元件? mscomm.ocx 也需要一并打包&注冊uj5u.com熱心網友回復:
用了串口控制元件,我注冊了mscomm.ocx用了串口控制元件,也注冊了,但是沒有打包。
按照你說的方法打包過后又試了一下,還是同樣的錯誤
uj5u.com熱心網友回復:
https://jingyan.baidu.com/article/cdddd41cab6f6453cb00e1fc.html轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/144361.html
