1.XRAYWorXBaseCOM::ITubeLoaderCOMPtr loader = NULL;
HRESULT hr = loader.CreateInstance(__uuidof(TubeLoaderCOM));
hr返回没有注册类
2.根据tlb文件中的TubeLoaderCOM定义
struct __declspec(uuid("46d84795-d783-4357-93d7-a86590e6dc40"))
TubeLoaderCOM;
在注册表中找到了该项,说明已经注册 如下图
3.使用regasm.exe注册,注册部分脚本代码如下
IF EXIST "%WINDIR%\Microsoft.NET\Framework64" GOTO x64
path="%WINDIR%\Microsoft.NET\Framework\v2.0.50727\"
echo %path%
GOTO endSetPath
echo GOX64
:x64
path="%WINDIR%\Microsoft.NET\Framework64\v2.0.50727\"
echo %path%
echo X64-F4.0
:endSetPath
regasm.exe "E:\workspace\300kv\Xray300kVQt\Xray300kVQt\ConnectionSampleCOM\XRAYWorXBase.dll" /tlb /codebase
echo.
regasm.exe "E:\workspace\300kv\Xray300kVQt\Xray300kVQt\ConnectionSampleCOM\XRAYWorXBaseCOM.dll" /tlb /codebase
pause
4.注册后的命令行显示
5.使用regsvr32.exe,注册后会提示找不到入口,貌似只能用regasm.exe