最近用vc做了一个ActiveX控件,出了点问题,就是在注册时总是出现这样的提示框: LoadLibrary("E:\ActiveX\PowerActiveX\bin\PowerActiveX.ocx")failed -内存分配访问无效。请问这是怎么回事?
小弟就要交东东了,十万火急!!不胜感激!!一定送分!!!
小弟就要交东东了,十万火急!!不胜感激!!一定送分!!!
[HKEY_CLASSES_ROOT\dllfile\Shell\Register\command]
@="RegSvr32 \ "%1\""
[HKEY_CLASSES_ROOT\dllfile\Shell\Unregister\command]
@="RegSvr32 /u \ "%1\""
REGEDIT4
[HKEY_CLASSES_ROOT\.ocx]
@="ocxfile"
[HKEY_CLASSES_ROOT\ocxfile]
@="OCX"
[HKEY_CLASSES_ROOT\ocxfile\Shell\Register\command]
@="RegSvr32 \ "%1\""
[HKEY_CLASSES_ROOT\ocxfile\Shell\Unregister\command]
@="RegSvr32 /u \ "%1\""
2 你确认这个ocx写的没问题吗?3 建议使用VC带的工具ActiveX control test contain 来注册这个ocx
//pathName为ActiveX文件名typedef BOOL (CALLBACK *DllRegisterServer)();
DllRegisterServer RegisterOcx;
if(hinstDLL = LoadLibrary((LPCTSTR)pathName.GetBuffer(pathName.GetLength())))
{
RegisterOcx = (DllRegisterServer)GetProcAddress(hinstDLL,"DllRegisterServer");
if( RegisterOcx() )
{
AfxMessageBox( "注册成功!" );
}
else
{
//AfxMessageBox( "注册失败!该组件不可用或者已经注册!" );
}
}
else
{
AfxMessageBox( "注册组件出错!");
}
[HKEY_CLASSES_ROOT\dllfile\Shell\Register\command]
@="RegSvr32 \ "%1\""
[HKEY_CLASSES_ROOT\dllfile\Shell\Unregister\command]
@="RegSvr32 /u \ "%1\""
REGEDIT4
[HKEY_CLASSES_ROOT\.ocx]
@="ocxfile"
[HKEY_CLASSES_ROOT\ocxfile]
@="OCX"
[HKEY_CLASSES_ROOT\ocxfile\Shell\Register\command]
@="RegSvr32 \ "%1\""
[HKEY_CLASSES_ROOT\ocxfile\Shell\Unregister\command]
@="RegSvr32 /u \ "%1\""这种方法很好