zoukankan      html  css  js  c++  java
  • 非托管访问托管类库方法

    一、托管类库的创建(VC#)
        1、要公布给非托管程序访问的方法、属性必须同时以接口形式公布,该类实现该接口,接口中没有
    的方法、属性,非托管客户端是无法访问的;
        2、所有共享程序集必须带有强名称(由发行者签名)。
           实现强签名方法:在assemblyinfo.cs中写入密钥文件名,然后编译即可
      例如[assembly:AssemblyKeyFile("sample.snk")] 默认搜寻路径为%Project Directory%\obj\
        3、启动vs.net控制台程序,执行 regasm  /tlb: ***.tlb ***.dll,以生成相应dll的tlb文件
        4、使用 Gacutil.exe 将程序集添加到全局程序集缓存,执行gacutil /i ***.dll
    二、非托管库客户端的创建(vb6中只需添加个引用即可,以下讲vc6)
        1、引入tlb文件,同时引入命名空间。例如:
     #import "LoanLib.tlb" raw_interfaces_only
     using namespace LoanLib;
        2、 HRESULT hr = CoInitialize(NULL);//初始化com
     ILoanPtr pILoan(__uuidof(Loan));//实力化服务器对象
     long x; 
     pILoan->add(10,20,&x);
     //引用服务器类方法,一般有返回值的,返回值会变成最后一个参数,本例中x即为返回值
     CoUninitialize();        //释放com
       
  • 相关阅读:
    Brackets_区间DP
    石子合并_区间Dp
    You Are the One_区间DP
    Palindrome subsequence_区间DP
    Infix to postfix 用stack模板,表达式没有括号
    Java 4
    Java 3
    规范化的递归转换成非递归
    recursion 递归以及递归的缺点
    Infix to postfix conversion 中缀表达式转换为后缀表达式
  • 原文地址:https://www.cnblogs.com/Finding2013/p/221535.html
Copyright © 2011-2022 走看看