问题标签 [iunknown]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java未知数量的参数方法
如何使用字符串和未知数量的参数创建方法?
谢谢。
visual-c++ - C++ 代码中包含异常模板化函数的结构
在以下 C++ 代码(来自 Microsoft COM 头文件)中,以 开头的部分是什么template<class Q>...
?
由于其他原因,我也完全感到困惑,因为虽然 astruct
正在使用中,但它具有类元素;例如,public
关键字。
com - 将接口从 IUnknown 更改为 IDispatch
我有一个只能通过 vtable 访问的 COM 类。它已经分发给客户。我还计划通过引入 IDispatch 来允许脚本访问。
在我的本地测试中,它显示客户端代码不会更改,但它们将需要代码重建,为什么会这样?
c# - COM 对象 IUnknown 参数。InvalidCastException IRowset
我在 c#(COM 技术)上编写了一个 Ole Db 提供程序。
Ole Db 提供程序是 .NET DLL。
InvalidCastException 存在问题:附加信息:无法将“MyOleDbProvider.RowsetObject”强制转换为“IRowset”类型。
从Ole Db Client执行“GetRowset”方法时会出现此问题。在 msdn 中:
我转换了“GetRowset”,例如
执行:
当我通过ppRowset InvalidCastException 发生。
仅当客户端是 .NET 客户端时才会出现此问题。.NET 客户端使用 System.Data.OleDb 命名空间。如果客户端是本机客户端,则没有问题。
encryption - 逆向工程寻求文件解压的帮助
这是我在 StackOverflow 看了这么多年后第一次写帖子寻求帮助。我从 0 开始到我现在的水平,一切都很棒。没有 StackOverflow,我无法得到它。这次我真的需要文件解压的帮助......它的开头
AF 1B B1 FA 10 00 00 00
在查看后发现我发现了这种文件类型
- GLS_BINARY_LSB_FIRST
- 应用程序/八位字节流
更多信息...我可以在其中查看一些小文件 *.dll
- 程序集-CSharp-firstpass.dll
- Assembly-UnityScript-firstpass.dll
- zlib.net.dll(这些文件我可以在 010 编辑器中以十六进制格式查看,我认为没有加密)....还有更多...
是的,我正在寻求帮助,它是什么压缩类型如何解压缩和重新压缩它......
您可以在以下位置获取演示文件:https ://mega.nz/#!K8Rm3CxD!O6dDHyLwbr6OdG18b9-1R6foBibbbQnRkMimyDdhJb0
谢谢社区!爱你们。很棒的 StackOverflow。
==================================================== ==========
p/s:更多细节:这个文件名是 global-metadata.dat 它存储在
AppName\Payload\qjmu.app\Data\Managed\Metadata
这个适用于 iOS 的应用程序,我将 iOS 应用程序的文件扩展名更改为 .zip 并提取这些文件。在这个 iOS 应用程序的另一个版本中,我没有找到这些子文件的文件包或压缩:
Assembly-CSharp.dll Assembly-CSharp-firstpass.dll Assembly-UnityScript.dll Assembly-UnityScript-firstpass.dll Boo.Lang.dll ICSharpCode.SharpZipLib.dll Ionic.Zlib.CF.dll Mono.Security.dll mscorlib.dll NSpeex .dll System.Core.dll System.dll System.Xml.dll System.Xml.Linq.dll UMGameAnalyticsLibForiOS.dll UnityEngine.dll UnityScript.Lang.dll zlib.net.dll
c# - 在 C# 中,如何在实现 IStorage 的返回对象上调用 Release?
我正在从 C# 读取和写入结构化存储文件。打开我调用的文件
这有效,我可以访问该文件。我相信我需要在 Storage 对象上调用 Release() 来关闭文件。但是,自从在 IUnknown 上实施以来,我不知道如何到达 Release。
我可以将 StorageInterface 转换为实现 IUnknown 的对象并以这种方式调用它吗?
谢谢,
约翰
python - python xlrd 未知编码:unknown_codepage_10008
我正在尝试使用 xlrd 打开一个 Excel 文件 (.xls)。这是我正在使用的代码的摘要:
这适用于大多数文件,但不适用于我从特定组织获得的文件。当我尝试从该组织打开 Excel 文件时出现的错误如下。
链接是一个错误文件 xls
c++11 - C++11 奇怪的符号 [0:size())
我是否可以理解
Stroutrup C++ 编程语言 - 不变量
上面的符号是一个范围初始化器,还是这个解释性指令在数学上传达 Vector 类数组范围在 0 和某个预定大小之间?
我什至应该使用这本书,因为它包含错误,例如使用.
而不是从该结构的变量访问结构成员->
?
c++ - 何时在类中实现 IUnknown
我正在编写一个 C++ 类,它至少使用 Windows API 的一个 COM 接口。显然,在类中使用这些对象时,我需要正确调用AddRef()
and Release()
。
我的问题是......我是否需要IUnknown
在 C++ 类本身中额外实现?我的理解是,如果我使用的接口正在执行异步操作或回调,我只需要这样做。在这种情况下,您需要确保在异步操作或回调完成时 C++ 类本身仍然“活动”。它是否正确?
为了澄清(以及根据 Hans 的评论),我感兴趣的特定界面是IMFSourceReader
(Windows Media Foundation)。该接口默认为同步模式。IUnknown
再说一次,如果我理解正确,如果我选择在异步模式下使用它,我只需要在我的 C++ 类中实现。否则调用IMFSourceReader->AddRef()
orIMFSourceReader->Release
就足够了。
但是,如果我选择IMFSourceReader
在异步模式下使用,则需要IMFSourceReaderCallback
接口,它本身继承了IUnknown
. 在那种情况下,我必须在课堂上实现它。
我的理解正确吗?我仍处于编写实现的早期阶段,所以我没有真正的示例代码可以分享。在这一点上,我只是想确定我班级的基本结构。
com - IUnknown(IXRApplication) 上的 AddRef 崩溃
我正在调试一个更大的问题,但我已经缩小到一个特定的场景。
首先:
这工作正常,然后:
这会执行甚至返回,S_OK
但是返回的地址与返回的地址pUnk
不同pApp
(正好少 4 个字节),出乎意料但技术上不是问题
在那之后:
这将执行并返回 0 但从此时开始,如果我尝试调用pUnk->Release
或pUnk->QueryInterface
它崩溃。如果我在它运行pUnk->Release
之前调用但在任何调用崩溃后再次调用。看起来好像实际上是在破坏对象。崩溃似乎是一个空引用异常。 pUnk-AddRef
pUnk->AddRef
AddRef
编辑:
因此,在学习了如何在 WEC7 模拟器上进行调试后,我发现了问题所在。AddRef()
上的组件IUnknown
看起来像这样
就是这样,所以每次调用都会AddRef()
破坏堆栈。这很有趣,因为有时它会起作用,而其他时候则不会,但事实证明它与堆栈有关,即堆栈分配的变量。
我现在不知道如何工作。由于可移植性问题,我试图避免使用本机包装器,但我认为仅使用托管代码无法解决此问题。
另一方面,微软到底在想什么。这不违反COM自己的规则吗?我很难理解他们如何发布破坏堆栈的代码。