regsvr32vbscrept.dll命令怎样运行能不能说说具体的 *** 作过程.

regsvr32vbscrept.dll命令怎样运行能不能说说具体的 *** 作过程.,第1张

regsvr32

这个命令行工具将 dll 文件注册为注册表中的命令组成。

2000系统的regsvr32exe在winnt\system32文件夹下;

WInXP系统的regsvr32exe在windows\system32文件夹下

语法

regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname 其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。

参数

/u

反注册控件

/s

指定 regsvr32 安静运行,且不显示任何消息框。

/n

指定不调用 DllRegisterServer。此选项必须与 /i 共同使用。

/i:cmdline

调用 DllInstall 将它传递到可选的 [cmdline]。在与 /u 共同使用时,它调用 dll 卸载。

dllname

指定要注册的 dll 文件名。

/

在命令提示符显示帮助。

执行该命令的方法:

1、可以在“开始”--“运行”,调出运行的对话框,也可以使用Win+R热键,然后直接在输入栏输入即可

2、在开始--运行 输入cmd,调出‘命令提示符’窗口,然后再执行regsvr32命令。

例:

要为“Active Directory Schema”注册 dll,请在 MS-DOS 提示符处键入以下命令:

c:\regsvr32 schmmgmtdll

>

这个小问题 还挺搞的花了我 个把小时 才调试出来。。。

首先从错误的信息,我们可以知道类型c# 返回的数组类型 和 vbs 用的数组 类型不匹配。

于是我尝试把c# lib里面的返回数据类型 强制转换为object, 才得以解决问题。

正确的解题步骤:

1 class lib 的代码如下

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemRuntimeInteropServices;

namespace Mylib

{

[ComVisible(true)]

[ClassInterface(ClassInterfaceTypeAutoDual)]

[Guid("B8B13C3A-CDA2-46a7-B551-44CCFCAA19F1")]

public class MyClass

{

public object GetArea()

{

object[,] area = { { 1, 2, 3, 4 }, { 1, 2, 3, 4 } };

return (object)area;

}

}

}

2。编译以上代码,确保没有错误, 然后强命名该程序集。

3 将该程序集装到gac 缓存里面。 使用如下命令:

regasm /codebase mylibdll

4vbs code:

Dim Obj

Dim myArray

Set myObj = CreateObject("MylibMyClass")

myArray = myObjGetArea()

msgbox myArray(0,0)

请注意:如果你之前 把 assemby 已经装载到gac里面了的话,建议你先从gac中将该assembly删除,然后使用第2步中的命令运行一遍。

有什么不清楚的,尽管说。

以上就是关于regsvr32vbscrept.dll命令怎样运行能不能说说具体的 *** 作过程.全部的内容,包括:regsvr32vbscrept.dll命令怎样运行能不能说说具体的 *** 作过程.、VBS如何检测进程是否存在、用C#写的DLL,如何返回一个二维数组给VBS读取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10176370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存