我已经成功地运行了我自己的.Net代码,遵循此处发布的步骤从Office 2003执行.NET 3.0代码
有没有办法使用标准的.Net库而无需编写包装器?这样我们就可以避免在客户端计算机上注册并安装自定义DLL到GAC中.
我发现tlb文件已经存在于C:\ Windows\Microsof.NET\Framework文件夹中,并且能够添加对mscorlib.dll的引用.查看RijndaelManaged的文档,此类似乎是COM可见.
我能够创建一个实例,但是一旦我尝试使用它,我就会收到错误(例如"类型不匹配").
Sub Macro1()
Dim aesImplementation As New RijndaelManaged
Set key = aesImplementation.GenerateKey()
Set iv = aesImplementation.GenerateIV()
End Sub
Run Code Online (Sandbox Code Playgroud)
我愿意接受你提供的任何黑客行为!
目前还不可能。VBA(VB for Applications)不是 VB,而是一个单独的协议,模仿旧版本 VB 的所有基本语法。这几乎就像使用常规的、较旧的 VB 的精简版一样。事实上,VBScript 是与 VBA 最接近的匹配。也许有一天,微软会构建直接与 GAC 合作的方法,但在那之前(我确信那一天可能意味着 COM 的消亡),您将不得不使用 COMCreateObject()方法,添加对注册的 COM 的引用库到您的 Office 项目,或直接引用 Office 项目中的 VBA/COM 兼容 DLL 或 TLB 文件。
默认 GAC 中有相当多支持 COM 的库,但对于大多数库来说,您必须首先在 VB.Net 或 C# 中创建 Com Callable Wrapper。
相反,几乎所有 MS Office 应用程序都是可调用 COM 的,因此您可以通过 VB.Net 项目使用已安装的 Office 应用程序。
| 归档时间: |
|
| 查看次数: |
9525 次 |
| 最近记录: |