mre*_*mre 25 c# dll wrapper visual-studio-express
我的一位同事告诉我,Visual Studio允许指向一个.dll
并自动神奇地生成一个C#包装类.这真的有可能吗?如果是这样,那么如何实现这一目标呢?我浏览过网络,但未能提出任何建议!
谢谢大家!
想我也会分享这些资源,
Dar*_*rov 34
3例:
任何DLL都无法做到这一点.只是一种非常特殊的类型,它实现了一个COM服务器.转换器需要对导出类型的良好描述,这是由类型库为此类服务器提供的.
类型库与托管程序集中的元数据完全等效.虽然它作为独立文件(.tlb文件)开始,但它通常作为资源嵌入到DLL中.它的好地方,使类型描述保持接近实现它的代码.就像.NET程序集中的元数据一样.
一些工具可以看到类型库(不确定它是否在Express中工作):在Visual Studio中使用File + Open + File并选择c:\ windows\system32\shell32.dll.您将看到该DLL中的资源,请注意TYPELIB节点.那是类型库.它是二进制的,所以实际读它是不实际的.为此,从Visual Studio命令提示符运行OleView.exe.File + View Typelib并选择相同的DLL.将类型库反编译回IDL,即最初用于创建类型库的接口描述语言.高度可读性,您将很难理解语言.并且可以很容易地看到.NET Tlbimp.exe如何将该类型库转换为等效的C#声明.
类型库很旧,它们自1996年以来一直存在.最初由Microsoft的Visual Basic团队设计,作为VBX的替代品,16位VB可扩展性模型.它们非常成功,几乎任何Windows编译器都支持它们.但它们的表达能力有限,不支持泛型和实现继承等内容.值得注意的是,Windows 8团队已经替换了WinRT的类型库.他们选择了.NET元数据格式.
归档时间: |
|
查看次数: |
31176 次 |
最近记录: |