关于调用第三方DLL的问题求教

笨沙发 2010-10-08 11:12:20
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.*;

public class CallDll {

public static void main(String args[]) {
ActiveXComponent app = new ActiveXComponent("OUR_MIFARE");
Dispatch ds = (Dispatch) app.getObject();
if(ds!=null){
//Variant result = Dispatch.callN(ds, "pcdbeep", new String[]{"20"});
Variant result = Dispatch.call(ds, "pcdbeep", new Variant("20"));
System.out.print(result);
}
}
}


OUR_MIFARE.dll是读卡器的一个DLL函数

提示Can't get object clsid from progid,应该是OUR_MIFARE文件没有注册,但是通过命令regsvr32 C:\WINDOWS\system32\OUR_MIFARE.dll不能注册这个文件,用其他语言DEPHI调用也无需注册就可以调用里面函数,想问有没有其他办法解决这个问题
...全文
162 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lingyun410 2010-10-15
你的DLL内采用的不是非标准的COM组件,是不能在系统注册的
  • 打赏
  • 举报
回复
qingkangxu 2010-10-08
试一下启动java的时候
【java -Djava.library.path=dll文件的路径】
  • 打赏
  • 举报
回复
focusforce 2010-10-08
http://zhidao.baidu.com/question/26637920
再不行,找提供商看demo。
  • 打赏
  • 举报
回复
singlesteven 2010-10-08
那个DLL得要给你留参数接口啊
  • 打赏
  • 举报
回复
生活 2010-10-08
Windows XP和2000会在文件中保存有关其功能的信息,这些文件就是动态链接库(DLL)。有关DLL信息则保存在Windows注册表中。如果DLL文件的注册表项(Registry entry)遭到破坏,那么打开文件或网页时,操作系统就会运行缓慢或者无法正常运行。幸运的是,来自俄亥俄州Dayton的高手Dick Waller告诉我们,Windows自带的regsvr32.exe工具能重新在注册表中添加DLL数据。

  即使你无法确定哪些DLL信息丢失或被破坏,也不会影响重新注册随Windows安装的DLL。对于由损坏的DLL注册表项引起的常见问题,下面的方法或许可以修复。

  很多问题通过重新注册Shell32.dll文件就能简单地得到修复,Shell32.dll保存有关Windows界面的信息,并被用来打开文件和网页。例如,重新安装这个DLL文件能在桌面“图形选项”对话框下重新保存JPEG或GIF图片预览(右击桌面,选择“选项”就能看到对话框)。它同时还能修复启动“新建快捷方式向导”功能(右击桌面,选择“新建”“快捷方式”)以及修复非常容易损坏的文件夹图标双击功能。

  若想重新保存这个DLL文件,选择“开始”“运行”,键入regsvr32 /i shell32.dll,按回车键。会有信息提示你这个命令是否生效(不过得重启电脑)。

  重新保存Windows XP图片和传真浏览器。如果双击文件图标不能浏览图片或传真,可以重新注册浏览器的DLL。选择“开始”“运行”,键入regsvr32 /i shimgvw.dll,按回车键。同样的,会有信息弹出提示这个DLL是否已经修复了这个问题。

  激活XP中的“添加网络空间向导”。有时重新保存一个破损的功能要求数次运行regsvr32 /i命令,每个需要重新保存数据的DLL都应运行一次。例如,如果在“我的网络空间”文件夹窗口左侧面板内点击“添加网络空间”但毫无反应的情况下,你在Windows“运行”栏内依次运行三个命令就能重新激活“我的网络空间”。操作是:选择“开始”“运行”,键入regsvr32 /i netplwiz.dll,按回车键。接下来相同操作,键入regsvr32 /i mshtml.dll命令行,最后运行regsvr32 /i shell32.dll命令行。

  重新保存快速启动栏。如果在任务栏右击,选择“工具栏”“快速启动栏”,只能收到一条错误信息提示说工具栏未能建立,你可能丢失了快速启动栏文件夹、注册表项或其他重要的文件。快速启动栏文件夹应该在C:\Documents and Settings\profile name\Application Data\Microsoft\Internet Explorer中。如果没有,你可以手动创建(点击“文件”“新建”,在刚刚提到的这个文件夹中新建一个文件夹,并命名为快速启动栏),也可以让Windows进行这项操作,操作是:选择“开始”“运行”,键入ie4uinit.exe,按回车键。试试是否能显示快速启动栏。

  如果仍然没有反应,选择“开始”“运行”,键入regsvr32 /i shell32.dll,按回车键。然后,点击“开始”“运行”,键入regsvr32 /i browseui.dll,按回车键。

for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

注册所有DLL
  • 打赏
  • 举报
回复
发帖
Web 开发

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
加入社区
帖子事件
创建了帖子
2010-10-08 11:12
社区公告
暂无公告