zoukankan      html  css  js  c++  java
  • COM与.NET程序集导出和部署COM组件

    为了分布式和多客户端调用我们还需要将写好的COM组件发布到一台服务器上。这里我们将组件部署到操作系统的COM+应用程序中去。如果没此需要就可以导出后,在C++环境中调用COM了。

        第一步:导出COM组件。我们可以使用regasm.exe(导出并在本机注册)或tlbexp.exe(只导出不注册,在C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727中,也可以拷贝到你要的目录中,以前1.1时不行的,还需要调用vsvars32.bat才可以使用)我们也写各bat文件。

    gacutil -i SayHello.dll(将强命名的程序集添加到全局缓存中去,不然在运行的时候会报找不到文件的错误)

    regasm SayHello.dll /tlb(生成我们需要的tlb文件)

        第二步:在得到tlb文件后我们 控制面板->管理工具->组件服务->计算机->我的电脑->COM+应用程序 中进行部署。首先添加一个新的空的COM+应用程序。

        再向刚刚建好的COM+应用程序中添加组件。新建组件->安装新组件,选择第一步生成的tlb文件点完成。我们就可以在组件中看到ComDemo.CSayHello和该组件实现的接口ISayHello。

        以上工作我们也可以通过脚本来完成,这里我们使用VB Script来做,同样他也时调用COM组件(COMAdminCatalog)实现的。

    1. '创建COMAdmin.COMAdminCatalog对象
    2. set cat = CreateObject("COMAdmin.COMAdminCatalog")
    3. '连接本地主机
    4. cat.Connect("127.0.0.1")
    5. '取得COM+应用程序配置
    6. set apps = cat.GetCollection("Applications")
    7. '读取现有COM+应用程序配置
    8. apps.Populate()
    9. '创建一各新的COM+应用程序配置
    10. set app = apps.Add()
    11. '用一各GUID来表示我们的com+应用程序
    12. app.Value("ID") = "{da2d72e3-f402-4f98-a415-66d21dafc0a9}"
    13. 'com+应用程序的名字
    14. app.Value("Name") = "SayHello"
    15. 'com+应用程序的描述
    16. app.Value("Description") = ".net and com+ demo"
    17. 'com+应用程序的模拟级别(1为匿名)
    18. app.Value("ImpersonationLevel") = 1
    19. 'com+应用程序的调用的身份验证级别(1为无)
    20. app.Value("Authentication") = 1
    21. '保存配置
    22. apps.SaveChanges()
    23. '将该应用程序设置为运行在NT Server上
    24. cat.CreateServiceForApplication "SayHello", "SayHello", "SERVICE_DEMAND_START", "SERVICE_ERROR_NORMAL", "", "", "", False
    25. '导入已经注册的控件(本来想用InstallComponent,但是总是报错,晕~)
    26. cat.ImportComponent "SayHello", "{C6D664F5-6CF6-4c12-9948-8A40B16818BE}"

    保存VBScript文件将其添加到bat文件中去:

    gacutil -i SayHello.dll

    regasm SayHello.dll /tlb

    installSayHello.vbs

    这样就将我们的程序部署到COM+应用程序中去了,后面就是调用了。

  • 相关阅读:
    重新整理数据结构与算法—— 斐波那契二分查找法[十四]
    重新整理数据结构与算法—— 插值二分查找法[十三]
    重新整理数据结构与算法—— 二分查找法[十二]
    Tuple和ValueTuple
    安装 php_mongodb.dll的坑
    前端——localStorage详细总结
    前端——Vue.js学习总结一
    数据库SQL语句大全,最常用的SQL语句
    Java——多线程超详细总结
    Java——异常那些事
  • 原文地址:https://www.cnblogs.com/BinZeng/p/3394136.html
Copyright © 2011-2022 走看看