- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试从 64 位应用程序创建 32 位 COM 对象。
我在 CoCreateInstance
调用中使用了 CLSCTX_LOCAL_SERVER
,并且我向 AppId
添加了一个空的 DllSurrogate
键> 注册表项告诉 COM 在 DllHost 中托管服务器。我从提升的提示中调用了 regsvr32 myproxy.dll
来注册代理,没有错误。我在注册表中看到,在注册表的 64 位部分中,我的界面有 ProxyStubClsid32
键。
我这样调用 CoCreateInstance
:
CComPtr<IMyObj> myobj;
HRESULT hr = myobj.CoCreateInstance(CLSID_MyObj, NULL, CLSCTX_LOCAL_SERVER);
这实际上适用于我的开发机器,我可以在 VS 中看到正在加载代理 DLL。但不是在我正在测试的机器上。所以这是一个配置问题。
请注意,如果我请求 IUnknown
,CoCreateInstance
会返回 S_OK
,这告诉我该组件已正确注册。
如何让 COM 加载代理 DLL?
最佳答案
我将不得不根据问题中缺少的信息,唯一真正的线索。您需要两个 代理/ stub DLL 的构建。可以加载到 64 位客户端的 64 位版本,必须通过 c:\windows\system32\regsvr32.exe 注册。以及一个可以加载到代理进程中并且必须由 c:\windwos\syswow64\regsvr32.exe 注册的 32 位版本。问题中没有证据表明后一步已得到处理。
如果这没有帮助,请从 SysInternals 的 ProcMon 获取诊断信息。您应该会看到它在搜索注册表项和 DLL 时失败了。
关于c++ - CoCreateInstance 在注册代理/ stub DLL 后仍然返回 E_NOINTERFACE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267392/
我有一个COM客户端和一个COM服务器,COM服务器持有客户端暴露的接口(interface),现在客户端实际上只是一个EXE,我如何确保客户端暴露的接口(interface)对服务器可见? 因为当我
我正在从 C++ 非托管代码调用 C# 方法。我在从数组中返回的类实例获取值时遇到问题。 我稍微简化了代码 这是有问题的方法。 [return: MarshalAs(UnmanagedType
我正在尝试在现有 COM 组件中构建连接点。我从 CCmdTarget 派生类,并按照 MSDN 中的描述在类声明和实现中调用 MFC 宏。组件已正确构建、链接和运行。但是,当我调试我的客户端应用程序
我正在尝试为我拥有的 COM 对象(名为 SC_COM.dll)生成 C# 包装器,但在将它与 Visual Studio 2008(运行 Vista)链接时遇到一些问题。我需要使用 COM DLL
我已经成功编译并注册了一个直接显示过滤器。现在我想在我的代码中使用它。但是对 COCreateInstance 的调用返回错误代码 E_NOINTERFACE。 这是我的过滤器的注册码 #inclu
注意: 使用 CoGetClassObject , 通过在系统注册表中有 CLSID 的类对象创建多个对象 单线程单元 例如: hresult = CoInitializeEx(NULL, COINI
在我使用 DirectX11 设计的渲染器中,我需要能够随时创建交换链,但是我使用的方法在 CreateSwapChain() 调用时崩溃了: IDXGIDevice * device;
我正在尝试创建一个指定的 D3D12 设备 https://msdn.microsoft.com/en-us/library/dn899120%28v=vs.85%29.aspx 我有 NVidia
我刚刚开始使用 Dx11。 D3DX11CreateEffectFromMemory 正在返回 E_NOINTERFACE。 我知道 E_NOINTERFACE 在 COM 方面意味着什么,但我不知道
我负责 C# 应用程序 (VS 2005) 的维护。此 C# 应用程序调用一个 dll(“mydll.dll”)。我需要对有问题的 dll 进行一些更改。 我有一个用 Visual Basic 6.0
我正在使用 CoCreateInstance 函数创建与指定 CLSID 关联的类的单个对象。它返回 E_NOINTERFACE。 我检查了注册表,CLSID 是正确的。被调用对象dll的路径在注册表
我正在尝试从我的集成相机上的输出引脚检索 IAMStreamConfig 接口(interface),但是 E_NOINTERFACE 失败。 我将 IntCam 用作测试设备,实际上我将有一个带有两
我已经搞不清是应该从我的 COM 服务器方法返回 E_NOTIMPL 还是 E_NOINTERFACE。 我有一个类有两个函数,我从我继承的类中覆盖了这两个函数,这两个函数什么都不做,因为它们目前还没
我有一个 COM 类 CMyCOMServer 在一个应用程序中实现了 IMyInterface,两者都具有正确的 GUID。如果请求 IUnknown 或 IMyInterface,CMyCOMSe
我有一个由 VB6 COM 对象实现的接口(interface) (ITask)。我有一个使用该接口(interface)的 C++ COM 对象,它通常工作正常。 但是,当我运行 VB6 调试器来调
我正在尝试从 64 位应用程序创建 32 位 COM 对象。 我在 CoCreateInstance 调用中使用了 CLSCTX_LOCAL_SERVER,并且我向 AppId 添加了一个空的 Dll
我一直在尝试制作一个利用桌面复制 api 的应用程序,但没有使用 directx 的经验,结果证明这是一个相当大的挑战。似乎一切正常,直到我调用 output1->DuplicateOutput(),
嗨 Stack Overflow 成员, 我是 C# 编程的新手。我正在开发一个基本的相机流和静态捕获应用程序。一旦用户静止不动,我将使用 VMR9 的位图混合概念在叠加层上显示它。 我做了什么? 我
我正在尝试使用 IFileSystemImage2 接口(interface)使用 Imapi2 创建具有多个引导记录的 ISO。 为此,我应该能够使用 put_BootImageOptionsArr
我正在尝试在我的 Win32 应用程序中嵌入一个 WMP 控件。我在这里遵循了示例代码:Hosting the Windows Media Player Control in a Windows Ap
我是一名优秀的程序员,十分优秀!