佚名通过本文主要向大家介绍了vc9运行库,vc9,vc9运行库64位,vc9运行库32下载,vc9运行库下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: VC9调用ActiveXDll的问题
描述:
前面使用另一种方法
#import "dll路径"
用这种方法后
编译时提示CCRMLogin crm; 抽象类不能实例化...
郁闷了啊... 整了一下午了,GG无数...都说用#import..
结果还是没一个能成的.. :( 帮忙看看...
解决方案1:
描述:
ActiveX.dll是VB6写的..
VS中添加的方法是:
解决方案资源管理器->添加->类->MFC类->ActiveX控件中的MFC类
添加包含了Activex中的CRMLogin类
自动生成相应的C++类(CCRMLogin.h/cpp)
在另一个CPP中添加包含文件CCRMLogin.h
可在使用时为啥不成呢...(编译能通过)
CCRMLogin crm;
crm.Login(); //Login方法是CCRMLogin中的Public方法,VS也有提示这个方法名,那这没错呀...
我在Debug模式中执行这代码时,出现错误,没有具体错误说明..
在Release模式下不出错,但没任何反应,跟进去看,到了下面这个函数中
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);
}
前面使用另一种方法
#import "dll路径"
用这种方法后
编译时提示CCRMLogin crm; 抽象类不能实例化...
郁闷了啊... 整了一下午了,GG无数...都说用#import..
结果还是没一个能成的.. :( 帮忙看看...
解决方案1:
在InitInstance的开始有没有调用 AfxEnableControlContainer ?