一、托管类库的创建(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