使用JavascriptActiveX对象触发C#dll我有一个#class库,需要用Javascript调用。下面是C#类的代码。使用系统;使用System.Collections.Generic;使用系统文本;使用System.Runtime.InteropServices;使用System.Windows.Forms;//消息框需要。命名空间csharp.activex.sample{[Guid("0D53A3E8-E51A-49C7-944E-E72A2064F938"),InterfaceType(ComInterfaceType.InterfaceIsDual),ComVisible(true)]publicinterfaceIHello{[DispId(1)]intShowDialog();};[Guid("873355E1-2D0D-476f-9BEF-C7E645024C32"),ProgId("csharpAx.CHello"),ClassInterface(ClassInterfaceType.None),ComDefaultInterface(typeof(IHello)),ComVisible(true)]publicclassCHello:IHello{#region[IHelloimplementation]publicstringHello(){return"HellofromCHelloobject";}publicintShowDialog(){System.Windows.Forms.MessageBox.Show("C#很棒");返回0;}#endregion};publicclassClass1{publicvoidshowDialog(){MessageBox.Show("Visualc#真棒!");我构建了类,我得到了一个dll文件,我将其复制到c:DLL。下面的代码用于注册DLLregasmC:DLLActiveXClass.dll/codebase/tlb我成功注册了消息类型。我使用以下javascript代码创建了一个html文件。变量myAx1;functionstartService(){myAx1=newActiveXObject("csharpAx.CHello");if(myAx1!=null){myAx1.showDialog();}else{警报(“失败”);}返回假;}StartService在由此获得的结果页面上,我单击启动服务。但是我没有收到任何诸如“失败”或“VisualC#很棒”之类的警告。请帮助我解决它为此,需要启用activex的安全选项。有关更多信息,请访问此链接http://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#学习教程:使用JavascriptActiveX对象触发C#dll共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
