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读取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)