在MFC里面用了一个动态库的函数后,编译通过,运行时出现上图错误。难道是添加动态库方式错了?我是在:配置属性-链接器-输入-附加依赖项里 加入Atm.lib,在源程序添加了头文件Atm.h。或者是什么其他错误?
提示你注意下函数调用约定,__cdecl
或者__stdcall
或者__fastcall
等等
不管你是什么样的异常,你应该用调试的方式运行程序,这样出现异常程序会停在报错的代码行,然后你才好排除错误。
void CRadDlg::OnBnClickedCalculation()
{
// TODO: 在此添加控件通知处理程序代码
double *TRANS = new double[m_iv2 - m_iv1 + 1];
double *TOTRAD = new double[m_iv2 - m_iv1 + 1];
CAtmRad atm;
atm.IMULT = 0;
atm.AtmRadiation(m_Atmmode,
m_Aertype, m_vis, m_wspd,
m_Cldtype, m_cldalt, m_cldthink, m_cldcoff, m_cldeffsize,
m_salb, m_tbound, m_gndalt,
m_hh1 ,m_hh2 ,m_angle,
m_solarzth,m_relazth, m_day,
m_iv1, m_iv2, m_idv,
TRANS,TOTRAD,
&AvgTrans,&IntRad
);
delete [] TRANS;
delete [] TOTRAD;
AfxMessageBox("计算完成");
}