我有一个 10 年前的应用程序,曾在 Windows XP 中使用。此应用程序是闭源的,因此我无法使用源代码修复它。现在,我想在 Windows 7 中使用它。
File Save
除、File SaveAs
和对话框外,应用程序的大多数功能均运行良好File Open
。
单击工具栏或菜单栏中的某个按钮会导致应用程序崩溃。
我已经连接了 Visual Studio 调试器并收到以下错误:
Unhandled exception at {Address} in {Assembly}: 0xc0000005:
Access violation reading location 0x00000000
我认为问题如下所述这里。
是否可以通过替换 DLL/使用 Shim/Hooking 打开/保存对话框或使用 Manifest 文件来解决此问题?
编辑
我们不允许使用 Windows XP 模式。
答案1
查找安装该程序的文件夹。很可能,这个文件夹是只读对于标准用户。在 Windows XP 中,程序通常可以在此处写入,因为几乎每个人都默认以管理员身份运行。在 Windows Vista 及更高版本中,情况通常不再如此。尝试设置文件夹的权限以授予用户组的修改访问权限。同时查找程序要用于其打开/保存对话框的默认位置并执行相同操作。