VB调用dll出现错误,带有 CLSID 的 COM 对象无效或未注册。手动注册也找不到clsid。

停止抱怨的第七条虫 2016-03-15 10:00:53

调用dll出现这个错误。我用regasm手动注册,虽然成功注册,但是注册项并没有clsid。更搜不到这个错误说的clsid。按网上的方法没解决,求大神帮忙了。
...全文
1117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-03-18
  • 打赏
  • 举报
回复
使用depends.exe查看dll依赖的其它dll 在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
  • 打赏
  • 举报
回复
这个问题解决了。谢谢各位了,在这分享下经验。 第一:是因为别人拿给我的dll文件,而调用需要安装一些特定的环境。说白了,还是缺少注册的文件。 第二:安装完环境还是一样报错,这时的原因是因为我的电脑是64位。而那些文件是32位的编写的。
  • 打赏
  • 举报
回复
@zhao4zhong1 谢谢赵4老师
一笑拔剑 2016-03-16
  • 打赏
  • 举报
回复
两种可能 你这个dll可能还有相关的库或者依赖dll 没有拷贝到这个电脑上 System.Runtime.InteropServices 命名空间提供各种各样支持 COM 互操作 及平台调用服务的成员。 从你的提示上来看,应该是你的程序所使用的.net框架版本与当前计算机的版本不一致造成的 解决办法: 1、将你的.NET框架补丁打到最高 2、打包程序的时候将你的.NET框架打进去 3、到这个dll确认可用的计算机进行测试
一笑拔剑 2016-03-16
  • 打赏
  • 举报
回复
引用 4 楼 qq_27385509 的回复:
@aspower_ 谢谢。还是没成功,所以还是在问下。因为dll不是我的不能去改,也没源码。我用工具查看,那些dll应该是.net1.1的版本下编译的。而我的电脑里可以看到 1.1 4.0 4.5三个版本,这样是不是算可以用? 还有我放到另外的电脑去测试,在那台电脑安装.net framework 1.1,然后 注册dll,注册表还是没找到那个clsid
我的意思是你这个dll还有依赖的库或者其他dll 因为clsid如果不存在的话,说明还有个dll没有注册或者没有安装某个控件
  • 打赏
  • 举报
回复
@aspower_ 谢谢。还是没成功,所以还是在问下。因为dll不是我的不能去改,也没源码。我用工具查看,那些dll应该是.net1.1的版本下编译的。而我的电脑里可以看到 1.1 4.0 4.5三个版本,这样是不是算可以用? 还有我放到另外的电脑去测试,在那台电脑安装.net framework 1.1,然后 注册dll,注册表还是没找到那个clsid
  • 打赏
  • 举报
回复
@ 用的是VB.net,这些要调用的dll是别人写的,拿到我的电脑调用出现这个错误。 请问你说的 .net库不对是指什么,版本不对?
一笑拔剑 2016-03-15
  • 打赏
  • 举报
回复
你这个是.NET的错误啊 会不会.net库不对?
1,cdrecorder.ZIP 一个用API函数编写的CD抓轨程序(5KB)2,mci.ZIP MCI的应用示例,包括播放WAV、MIDI文件和播放CD及将CD中的曲目转录为WAV文件等(5KB)3,wavplay.ZIP 播放WAV文件的演示(23KB)4,vbpiano.ZIP 一个模拟钢琴的源程序,(需要Threed32.ocx)(75KB)5,videocap.ZIP 一个视频捕捉程序,安装了视频捕捉设备的朋友可以下载来看一看(12KB)6,mixer.ZIP 一个非常完全的waveOut程序,包括了一个waveOut类和使用类的范例,这个范例获得Windows下所有的wave输入输出设备的名称以及属性(22KB)7,agent1.ZIP Microsoft Agent范例程序,你的系统中必须已经安装了Agent2.0以上版本(2KB)8,sound_cap.ZIP 利用DirectSound和MS Agent建立的一个语音复读机。读音的捕捉和回放由DirectSound实现,MS Agent实现标准朗读(5KB)9,mmfile_play.ZIP 利用Windows API函数实现多媒体文件得播放,可以播放MPG、AVI、MDI、WAV等文件以及文件信息(128KB)10,midi_drum.ZIP VB鼓机的音序器(26KB)11,flashsamp.ZIP 这是一个介绍如何控制Flash控件显示Flash文件的程序(62KB)12,m032.ZIP 定时计时器(530KB)13,m031_plmaker.ZIP 播放列表生成器(4KB)14,m029_speech.ZIP 程序会朗读(2KB)15,m028_mp3.ZIP 简单的mp3播放器(10KB)16,m027_mp3test.ZIP MP3播放器(3KB)17,m025_zm016.ZIP 一个音量控制小程序(6KB)18,m024_videocap.ZIP 视频捕捉程序(12KB)19,m023_mcd.ZIP CD播放器(23KB)20,m022_mmedia.ZIP 多媒体播放器(3KB)21,m021_Play33.ZIP 电子琴(9KB)22,m020_vbamp.ZIP WINAMP(141KB) 23,m019_testsc.ZIP 声卡测试程序(3KB)24,m018_cdaudio.ZIP CD播放机(4KB)25,m016_aviplay.ZIP 利用Windows API 播放AVI文件(3KB)26,m015.ZIP 一个音量控制小程序(7KB)27,m014.ZIP 播放.mid格式的背景音乐,你可以在此基础上增加其它功能(13KB) 28,m013.ZIP 播放.WAV文件,并显示其波形(6KB)29,m012.ZIP 可同时8个Wave文件混音(338KB) 30,m011.ZIP 能混合很多种声音的好程序(14KB)31,m010.ZIP 播放Wave, Midi和Avi文件(7KB)32,m004.ZIP 多媒体控件的使用,自带EXE(8KB)33,m003.ZIP MULTIMEDIA MCI 多媒体控件的应用,自带EXE(3KB)34,m002.ZIP 可以播放mp3的dll,并附有一个完整的示例程序(可以显示播放时间等,功能强大),自带现成的EXE文件,非常Cool(82KB)35,m001.ZIP 使用API函数播放wav文件(350KB)36,anidemo.ZIP 使用windows api演示动画的例子(288KB) 37,anic.ZIP 动画光标的例子(4KB)38,waveplay.ZIP 播放wave的例子(350KB) 39,jpegvu.ZIP 显示jpeg文件的例子(116KB)40,g
资料收集工具(易语言2005年大赛三等奖) “Glean资料收集工具”设计文档 参赛的几项说明: *本程序使用 3.8 版编写。 *文件清单及位置:(12个文件,没有易编译后的exe程序和发布安装程序) (工作目录下) 设计文档.txt      本资料 glean.e           资料收集工具主程序 gettext.e         快速保存文字资料程序 G_HELP.CHM        帮助文件 getresource.dll   传递信息的 DLL 文件(源程序在本资料中) glean01.ico       IE 工具按钮的图标 glean02.ico       IE 工具按钮的图标 regvsr32.exe      系统注册程序(每台机器都应该有) data(子目录) zlk.edb             资料库 zlk.edt             资料库 glean简要说明.ewd   EWD文档的例子 glean简要说明.rtf   RTF文档的例子 一、本次参加大奖赛的修改说明: 原来的程序主要是编辑HTML格式的资料,因此使用了微软的 dhtmled.ocx,由于本次大奖赛要求不能使用外部OCX控件,易语言没有这方面的支持库。为了适应大奖赛的要求,删除了 dhtmled.ocx 控件,改用办公组件。我认为这使软件的通用性变差。 二、程序的调用流程: 程序有两种启动方式:1 直接启动主程序,实现资料的浏览、编辑功能。2 由 IE 浏览器启动,实现收集资料的功能。对于后者的启动流程分解如下: 1、由自定义的 IE 工具按钮、或者右键菜单,分别通过注册表启动 geturl.htm 和 gettext.htm 脚本程序。 2、脚本程序负责生成 IE 中的必要信息(网页地址、功能信息、程序的执行路径、网页名称。),然后启动 GetResource.dll ,并传递参数。 3、GetResource.dll 根据功能信息(按钮或右键)分别启动不同的 E 程序,完成收集资料的工作。 三、脚本程序。比较简单,可以直接查看程序安装目录下的文件。(首次运行主程序 glean 即可生成) 四、GetResource.dll 注:E 语言生成的 Dll 文件不能被 windows 注册,所以使用 VB 编写。 GetResource.dll 文件的作用是充当调用 E 程序的桥梁。它的功能有两个: 1、传递参数。 2、根据功能信息(INFO)调用不同的 E 程序。 它只有一个子程序,如下: Public Sub geturl(URL As String, Info As String, sFilePath As String, sName As String) '入口参数: URL--网页的地址,INFO--“按钮”或“右键”,SFILEPATH--程序的执行路径,SNAME--网页的名称。 Dim szlPath As String, sdirTemp As String Dim strInfo As String Dim sFlName As String Dim Errno As Variant sFilePath = Replace(sFilePath, "\\", "\") sFlName = Replace(sName, " ", "<@>")        'dos的参数是用空格分段的。 If Info = "右键" Then '右键,直接保存。 strInfo = sFilePath + "\gettext.exe " + URL + " " + sFilePath + " " + sFlName Else '按钮,调出资料编辑窗口 strInfo = sFilePath + "\glean.exe " + URL + " " + sFilePath + " " + sFlName End If Errno = Shell(strInfo, 1) End Sub 五、在 IE 浏览器上增加工具按钮和右键菜单的方法。 1、增加工具按钮 对于注册表的主键:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions 作如下操作: (1)在Extensions中新建主键,主键的命名格式为“{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}”,如:{11111111-2222-3333-4444-555555555555},这里不能和其它主键名发生重复。 (2)在新建的主键中建立名为ButtonText的字符串,该字符串的作用是定义按钮上显示的文字。 (3)建立名为Clsid的字符串,其值固定为{1FBA04E

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧