CB6写的COM组件,以C#等语言下能正常调用,JavsScript中不能调用

jhliusoft jhliusoft 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
CB6写的COM组件,以C#等语言下能正常调用,JavsScript中不能调用函数。

我用CB6写了一个COM组件,里面只有一个接口,接口下有两个函数,在C#中能正常使用,在IE 采用 JaveScrpt不能正常调用,
class ATL_NO_VTABLE TPACSViewImpl :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<TPACSViewImpl, &CLSID_PACSView>,
public IDispatchImpl<IPACSView, &IID_IPACSView, &LIBID_iHYPACSView>,
public IObjectSafetyImpl<TPACSViewImpl, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>
{
private:
AnsiString m_sPipeName;
private:
void __fastcall WriteServerAddress(BSTR ServerIP, unsigned_short ServerPort);
AnsiString __fastcall encrypt(AnsiString Source, int PinKey);
bool __fastcall OpenPACSImageViewWindow(AnsiString sUserName, AnsiString sUserPw, unsigned_short uRouteID);
bool __fastcall SendImageCommand(AnsiString sCommand);
bool __fastcall CheckPACSImageView();
public:
TPACSViewImpl()
{
//创建命名管道
m_sPipeName = "\\\\.\\Pipe\\ClinicalView";
}

// Data used when registering Object
//
DECLARE_THREADING_MODEL(otApartment);
DECLARE_PROGID("iHYPACSView.PACSView");
DECLARE_DESCRIPTION("GreatPACS ImageView");

// Function invoked to (un)register object
//
static HRESULT WINAPI UpdateRegistry(BOOL bRegister)
{
TTypedComServerRegistrarT<TPACSViewImpl>
regObj(GetObjectCLSID(), GetProgID(), GetDescription());
return regObj.UpdateRegistry(bRegister);
}

BEGIN_CATEGORY_MAP(TPACSViewImpl)
IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
END_CATEGORY_MAP()

BEGIN_COM_MAP(TPACSViewImpl)
COM_INTERFACE_ENTRY(IPACSView)
COM_INTERFACE_ENTRY2(IDispatch, IPACSView)
COM_INTERFACE_ENTRY(IObjectSafety)
END_COM_MAP()

// IPACSView
public:

STDMETHOD(CloseImageView());
STDMETHOD(OpenImageView(BSTR ServerIP, short ServerPort, BSTR PACSUserName,
BSTR PACSUserPW, short RouteID, long ImageID,
VARIANT_BOOL AddedView));
};

请高手指点一下,我直接在本机注册COM,使用如下代码在IE中运行,对象能创建,调用函数失败。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>

<script language="JavaScript" type="text/javascript">

function look()
{
var pacs = null;
pacs = new ActiveXObject("iHYPACSView.PACSView"); //请确保浏览器允许加载该控件。
try {
//pacs.CloseImageView();
pacs.OpenImageView("125.91.214.2", 8701, "9000", "9000", 2, 100, true);
}
catch (e) {
alert("调用函数失败," + e.name + ": " + e.message);
}
}

</script>

</head>
<body>
<a> 查看图像请点击
<input type="button" value="查看图像" onclick="look();" /></a>
</body>
</html>
...全文

相关推荐

chrome-headless-shell-win32-159.0.8132.0(Canary).zip

chrome-headless-shell-win32-159.0.8132.0(Canary).zip

LCG元

惠普150 联想1821 1831 1831W定影清零,转印带清零

惠普150 联想1821 1831 1831W定影清零,转印带清零,报错不打印,通过清零软件可以清除。内附使用说明。

weixin_45614853

【电液伺服执行器与PI控制器】带有PI控制器的电液伺服执行器的模拟研究(Simulink仿真实现)

内容概要:本文围绕带有PI控制器的电液伺服执行器开展模拟研究,利用Simulink工具构建系统仿真模型,深入分析PI控制器在电液伺服系统中的控制性能与动态响应特性。研究内容涵盖系统建模、PI控制参数整定、仿真结果分析等关键环节,重点探讨PI控制器对系统稳定性、响应速度及抗干扰能力的优化作用,并通过仿真验证控制策略的有效性与实用性; 适合人群:具备自动控制原理、液压传动基础知识及Simulink仿真能力的自动化、机械电子、控制工程等相关专业的高校学生、研究生及工程技术人员; 使用场景及目标:①用于自动控制类课程的教学实验或课程设计,帮助学生深入理解电液伺服系统的工作原理与典型控制方法;②应用于工业高精度执行机构的控制器设计,为实际工程中的系统优化提供理论支撑与仿真验证手段; 阅读建议:文中提供的Simulink模型与仿真流程具备良好的可复现性,建议读者结合具体工况调整PI参数,进一步探究PID或其他先进控制算法的改进效果,以深化对控制系统设计的理解与应用能力。

三伯

FYZN PcbDesigner.App.1.0.18.12-win10.rar

打开与保存 常用格式直接读写:打开、编辑、保存 .PcbDoc(含设计规则、层叠等信息)也能打开看结构 原理图文档:打开 / 新建 .SchDoc,和 PCB 文档一起在左侧项目树里管理,双击节点即可重开 另存为通用 ASCII:原理图与 PCB 都能导出为 ASCII 格式,方便文本比对、脚本处理,或交给别的流程 底图参考:需要对着图描的时候,可以给每个图层各放一张参考底图,与文件分开存 JSON,迁移工程时能一起带走 最近文件:最近打开的文件列表里可以直接右键「打开文件位置」 win10版本

b450207756

软件测试浏览器自动化测试3

内容概要:本文介绍了浏览器自动化测试的三种主流工具——Selenium、Playwright 和 Puppeteer,并重点展示了 Puppeteer 的一个最小可运行代码示例。文章指出,从选型角度看,2026年的技术共识是新项目应优先选择 Playwright,已有 Selenium 框架的项目无需主动替换,而 Puppeteer 更适用于仅针对 Chrome 浏览器且运行环境为 Node.js 的场景。文中提供的 Puppeteer 示例涵盖了启动浏览器、打开页面、设置视口、键盘操作、元素定位与点击等核心操作流程,体现了其作为“浏览器控制库”的定位。同时强调,Puppeteer 本身不包含测试运行器和断言功能,需结合 Jest 等测试框架才能完整实现自动化测试能力,这是它与 Playwright 和 Selenium 的本质区别。; 适合人群:具备一定前端或自动化测试基础,从事 Web 自动化测试相关工作的开发与测试人员,尤其是面临工具选型的技术决策者;; 使用场景及目标:①帮助开发者快速理解 Puppeteer 的基本使用方式及其在实际项目中的应用流程;②为团队在自动化测试工具选型时提供明确的技术方向建议,尤其是在新项目中评估 Playwright 与 Puppeteer 的适用边界;; 阅读建议:在学习本文时,建议结合实际编码环境运行示例代码,并进一步探索 Puppeteer 与 Jest 的集成方案,以构建完整的测试闭环;同时关注 Playwright 相对于 Puppeteer 的优势,如多浏览器支持和内置测试模型,以便做出更合理的工程决策。

Bert.Cai
评论 20
收藏 已收藏
分享
返回顶部
jhliusoft
ActiveX/COM/DCOM 703 成员 3,001 内容