Csharp/C#教程:使用Javascript ActiveX对象触发C#dll分享


使用Javascript ActiveX对象触发C#dll

我有一个需要用Javascript调用的#class库。 下面是C#类的代码。

using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; //required for message box. namespace csharp.activex.sample { [Guid("0D53A3E8-E51A-49C7-944E-E72A2064F938"), InterfaceType(ComInterfaceType.InterfaceIsDual), ComVisible(true)] public interface IHello { [DispId(1)] int ShowDialog(); }; [ Guid("873355E1-2D0D-476f-9BEF-C7E645024C32"), ProgId("csharpAx.CHello"), ClassInterface(ClassInterfaceType.None), ComDefaultInterface(typeof(IHello)), ComVisible(true) ] public class CHello : IHello { #region [IHello implementation] public string Hello() { return "Hello from CHello object"; } public int ShowDialog() { System.Windows.Forms.MessageBox.Show("C# is awesome"); return 0; } #endregion }; public class Class1 { public void showDialog() { MessageBox.Show("Visual c# is awesome!"); } } } 

我构建了类,我得到一个dll文件,我将其复制到c: DLL。 下面的代码用于注册DLL

 regasm C:DLLActiveXClass.dll /codebase /tlb 

我成功注册了消息类型。

我用以下javascript代码创建一个html文件。

      var myAx1; function startService(){ myAx1 = new ActiveXObject("csharpAx.CHello"); if(myAx1 != null) { myAx1.showDialog(); } else{ alert("failed"); } return false; }    
StartService

在这样获得的结果页面上,我点击开始服务。 但我没有得到任何警告,如“失败”或“Visual C#很棒”。

请帮忙

我解决了 为执行此操作,需要启用activex的安全选项。

有关详细信息,请访问此链接https://www.aras.com/Community/forums/p/2527/7698.aspx

我认为最好的解决方案是实现IObjectSafety,如果您信任activex,则不需要让用户检查互联网选项。 第5点的这个链接解释了如何做到这一点: http : //www.olavaukan.com/2010/08/creating-an-activex-control-in-net-using-c/

上述就是C#学习教程:使用Javascript ActiveX对象触发C#dll分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1034887.html

(0)
上一篇 2022年1月19日
下一篇 2022年1月19日

精彩推荐