- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我们正在将一个巨大的应用程序从 32 位移植到 64 位。这个应用程序有一些外部库,我们要么禁用它们,要么使用它们的 64 位版本。我们还通过自己编写的 COM 方法访问数据库。我们使用的是在 32 位上运行良好的 MSXML4。
没有 64 位版本的 MSXML4,因此我们升级到 MSXML6。我们只使用了 MSXML 的一些功能,尤其是 DOM 解析器,所以我们唯一做的就是替换以下行:
#import "msxml6.dll"
和
MSXML2::IXMLDOMDocumentPtr pXMLDocPtr;
pXMLDocPtr.CreateInstance( ___uuidof( MSXML2::DOMDocument60 ) );
然后我们尝试做这样的事情:
pXMLDocPtr->loadXML( _bstr_t( L"<?xml version=\"1.0\" encoding=\"utf-8\"?><abc></abc>" ) );
这在 32 位下工作正常。但在 64 位下,调用 loadXML 函数时 msxml6.dll 会抛出异常。虽然 CreateInstance 返回一个有效的指针并且返回码是 S_OK。调试输出中还打印了一条错误消息:
First-chance exception at 0x000007fef888238e in App.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff.
Unhandled exception at 0x000007fef888238e in App.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff.
一开始我们以为是我们使用库的方式不对,后来发现了下面的东西。如果我们在初始化我们自己的 COM 组件之前读取我们的 XML 文件,它就可以工作。所以现在看起来我们自己的 COM 组件正在“破坏”COM 库。但这怎么可能呢?
我们进行了一些试验,只有当我们尝试使用 MSXML 时才会出现问题。所有其他 COM 对象都在工作。除了 IFileDialog(我认为它也是一个 COM 类)有一次在使用过程中崩溃。
问题出现在我们调用 COM 组件的 CoCreateInstance 之后,这在我们的例子中并没有做太多。而且我在我们的 COM 服务器上看不到任何明显的错误,例如具有 64 位数据类型。
那么问题是:
64 位版本的 MSXML 有问题吗?
还是我们在 COM 服务器的 64 位端口上犯了一个 fatal error ?
有没有人遇到过类似的问题?
任何帮助将不胜感激,因为我现在真的陷入困境,因为我不知道如何追踪真正的问题。
最佳答案
出现这种情况的典型原因是对 CoUninitialize()
的意外调用 - 它导致所有 COM 对象被释放并且指向它们的所有指针都变得悬空。 See this question for an example .
关于c++ - COM 和 MSXML 的问题(仅限 64 位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293262/
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我们有自己的 http 服务器适配器,我们用它来托管多个站点。 本网站通过 https 运行。当我们尝试使用 chrome、firefox 或 safari 访问 url 时,它工作正常。该问题仅发生
让我从代码开始……请注意,这不是关于覆盖实例方法的问题——这纯粹涉及扩展方法。此代码用于 Unity3D 游戏引擎,版本 5.3.x public static class ExtentionMeth
我想知道如何开发一个只提供 iOS native 设置应用程序中的一些设置的应用程序,比如很多 cydia 调整,而跳板上没有图标?我的目标只是让一些开关和按钮在我的本地网络上发送命令。 最佳答案 在
好吧,我需要得到两个值来表示两个完整日期之间的距离(没有小时/时间)......在 MySQL 上我们有 PERIOD_DIFF 来获取两个日期之间的差异(只有月份和年份),但我也需要包括日期。 我有
这就是我想要做的。在我的 html 页面上,我必须有 4 种不同的字体大小,其中一种是 10px 20px 30px 40px 然后重置。 当我在 10px 上单击或滚动鼠标时,字体大小会更改并在 d
这个问题在这里已经有了答案: How can I transition height: 0; to height: auto; using CSS? (41 个回答) 关闭 4 年前。
我喜欢 JQuery Mobile,但我的页面中有许多与 JQuery Mobile 不兼容的自定义 Javascript。 我页面中的所有内容都工作正常,但是当我添加 JQuery Mobile 库
我正在尝试创建以下工具提示(不是其中的内容 - 只是框和箭头): 我在让箭头与主框正确融合时遇到问题。 我创建了一个 Fiddle here使用我目前拥有的代码。 您会注意到箭头看起来不错,但不是 1
我是 Javascript 新手。我正在尝试通过练习来学习它。我正在做的这个看起来并不难,但我有一个小问题。 我有一个包含 3 个文本输入和一个提交按钮的表单。通过按下按钮,我获得了字段值并使用这些值
当我将鼠标悬停在按钮上时,我希望菜单滑出。不知何故,只有当我将悬停效果添加到菜单本身而不是按钮时,它才会起作用。我在网上能找到的都是一样的(悬停效果附加到应该滑出的菜单,而不是按钮)。我该如何实现?j
我只想让我的应用程序横向,所以我使用这里提供的方法:i want to make my application only in landscape in android 简而言之,我正在将 andro
我需要将我的共享扩展限制为仅纵向模式。但到目前为止,还不行。有办法吗? @implementation UINavigationController -(BOOL)shouldAutorotate {
不知道是否有人已经看到这个错误。请注意,这仅发生在 Android 4.x 库存浏览器中。它已经在 Android 4 上的 Chrome、旧版浏览器、iOS、Blackberry OS6 和 7、P
如果内容大于容器,我正在尝试构建一个可在 x 和 y 方向滚动的表格。我还希望标题始终在顶部可见。我已经完成了第一部分的工作,标题始终在顶部可见,但是标题列的大小与表格的大小不匹配。 我创建了这个 f
当对图像应用 ImageFilter.blur 时,图像的边缘没有变化。 如何将模糊扩展到边缘? import 'dart:ui'; import 'package:flutter/material.
我正在为 Android 平板电脑编写应用程序。我希望 ScreenOrientation 始终处于“横向”状态,但应用程序应该能够旋转 180°。如果您将平板电脑倒置,则 View 应正确显示并旋转
我有一个带有属性装饰器的类。 class Dispatcher: def __init__(self, url): self._session = None @prop
我只想在模型的查询集中选择几个字段。我看到了这个链接:Django queryset only我以为我实现了它,但我仍然得到了整个查询集。 这是我的项目 View .py: from django.s
我看了看,发现了类似的问题,但它们似乎都是如何将一个列表添加到另一个列表的末尾。 我最近用我在 Excel 中使用的一种技术回答了一个问题,该技术依赖于创建第三列,并使用公式填充来连接每一行的 col
我是一名优秀的程序员,十分优秀!