DLL部分:FloatCalDLL.dll
caculate.cpp
_declspec(dllexport)floatfloatcalculate(floatx,floaty,inttype)
{
switch(type)
{
case0:
{returnx+y;}
case1:
{returnx-y;}
case2:
{returnx*y;}
case3:
{returnx/y;}
}
}
主程序调用DLL部分,在“运算”的消息响应函数添加以下代码:
voidCFloatDialog::OnStart()
{
//TODO:Addyourcontrolnotificationhandlercodehere
HINSTANCEhdll;
hdll=LoadLibrary("..\\Debug\\FloatCalDLL.dll");
typedeffloat(*MyCalculate)(floata,floatb,intc);
MyCalculatecalfunc;
if(hdll!=NULL)
{
calfunc=(MyCalculate)GetProcAddress(hdll,"?floatcalculate@@YAHHH@Z");
}
else
{
AfxMessageBox("无法加载DLL");
return;
}
UpdateData(true);
m_num3=calfunc(m_num1,m_num2,m_occupation);
UpdateData(false);
FreeLibrary(hdll);
输入数据后点击运算就弹出对话框,应用程序已经停止工作,这是什么原因呢?
分 -->
|