这是一个与NITGEN FINGKEY(指纹扫描仪)COM NBioBSPCOMLib.dll连接的Windows窗体应用程序。我添加了他们的dll作为参考,生成\ obj \ Debug \ Interop.NBioBSPCOMLib.dll。 Project-> Build->平台目标位于x86中。我在创建设置向导时遵循以下步骤:
当我在Windows 7中安装它时,该应用程序工作。但是当我在XP SP 3中安装它时,我得到了“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”异常。
我添加COM dll的方式有问题吗?
更新
我将应用程序移植到.NET Framework 4.0。我添加了dll作为参考,设置嵌入式互操作类型:true。创建安装程序安装程序,而无需在Application文件夹中手动添加dll。现在我收到此错误:“system-runtime-interopservices-comexception-0x80040154”。我在其他帖子中发现:link不在注册表中,但指纹的驱动程序安装程序不应该执行此操作吗?
我尝试在dll上手动执行regsvr32但是它只是说应用程序遇到了问题并需要关闭。当我取消注册dll时,getxception返回。
答案 0 :(得分:1)
是的安装程序日志非常详细:)但你只需搜索它“NBioBSPCOMLib”,你就会看到他正在做什么。在你的情况下它有点奇怪,文件放在C:\ Program Files \ Wikonec \ LTODoctorVerify \ Interop.NBioBSPCOMLib.dll(见第1024和1025行)但稍后当我们想要注册它的路径“file:// / C:/ Users / Jemuel / Documents / Visual Studio 2010 / Projects / fingerprint / FingerPrintValidate / bin / Debug / Interop.NBioBSPCOMLib.dll“(第1124行)。我是正确的,如果我认为windows7是你的开发电脑和winXP没有视觉工作室的测试机器?