问题标签 [safehandle]

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.

0 投票
2 回答
154 浏览

c# - 如何从很长的路径中获取文件的创建日期时间?

我的文件路径很长,因此只能使用SafeFileHandle.
想要获取创建日期时间。
当尝试获得 Millies 然后转换时,DateTime它会减少 1600 年。

代码:

上面creationTime少了1600年。而不是 2019 年,而是 0419。

然后我不得不这样做

以上creationTime是正确的,因为我添加了 1600 年。

是什么让日期减少了 1600 年?
我做错什么了吗?

0 投票
1 回答
73 浏览

c# - 将“SafeHandle”用于 C API,包括引用计数

我正在研究 Python 互操作。在内部,Python 通过Py_IncRef和为所有对象保存引用计数器Py_DecRef。我想确保正确完成指向 Python 对象的指针,所以我试图创建一个PyHandle派生自的类,SafeHandle它会调用Py_DecRef.ReleaseHandle

问题是:与 Windows API 不同,Python 在返回指向对象的指针之前不会增加 refcount。所以当互操作创建一个实例时PyHandle,我希望它调用Py_IncRef指针。但是,我没有看到可以覆盖的方法。SafeHandle构造函数采用无效的句柄值,并且没有AcquireHandle覆盖。CoreCLR 代码也有不可覆盖的SetHandle方法(参见SafeHandle.cs)。

我可以做些什么来调用互操作构建的Py_IncRef时间?PyHandle

SafeHandle完成任务的正确工具吗?

0 投票
0 回答
89 浏览

c# - 有没有办法从 c# 将一组 SafeHandles 发送到本机函数?

我有一个本机 (c++) 函数,它将一组指向图像的指针作为参数。在我的 c# API 中,指向图像的指针保存为 SafeHandle。现在我想向我的函数发送一个 SafeHandles 数组,但随后出现以下错误。

System.Runtime.InteropServices.MarshalDirectiveException: Cannot marshal 'parameter #2': Invalid managed/unmanaged type combination (Arrays of SafeHandles are not supported).

简化后的代码如下所示:

本机端

托管方

请注意,ImageHandle 派生自 SafeHandle

我当然可以通过从 SafeHandle 中提取 IntPtr 并将这些对象的数组发送到我的本机函数来解决问题。但据我了解,我不会获得 SafeHande 提供的一些额外安全性。

那么,我应该如何将我的对象发送到我的本机函数?我必须制作一个 IntPtr 数组还是有更好的方法?

0 投票
0 回答
80 浏览

text-to-speech - 有没有办法在 SpeechSynthesizer 上使用 StopSpeakingAsync 而不用 Dispose 挂起?

在尝试使用 Microsoft.CognitiveServices.Speech sdk 中的 SpeechSynthesizer 时,我注意到如果在调用 StopSpeakingAsync 之后调用 Dispose(),它就会挂起。

有没有办法绕过这个?我做了一个简短的控制台应用程序来说明下面的问题。我使用 Reflector 试图了解图书馆内部发生的事情,但发现它似乎SpxExceptionThrower.LogErrorIfFail挂起。

我正在使用 1.18.0 版的 sdk。

(请注意,需要订阅认知服务/语音服务并在.FromSubscription通话中输入密钥和区域)

谢谢!

0 投票
1 回答
26 浏览

asp.net - ASP.Net SafeHandle - 任务和示例

我想了解如何使用非托管资源以及何时需要 SafeHandle 类。当您可以说:“哦,我需要 SafeHandle 类!”时,问题陈述可能是什么?

我将不胜感激文章,示例,解释的链接