问题标签 [intptr]

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 投票
3 回答
4386 浏览

c# - 用于编组结构数组的辅助函数(带指针)

这似乎是最常见的 C# 互操作问题,但似乎很难找到有效的解决方案。

我需要在 C# 中分配一个矩阵数据结构数组,将其传递给一个 C DLL,该 C DLL 填充数据并将其返回给调用者进行处理。

基于网络上的各种页面,我似乎已经设法将数据和内存从 C# 获取到 C++ 中,但似乎没有返回......

代码如下。

在此先感谢您的帮助


我有一个 C++ 结构如下

我在 C# 中声明为

0 投票
4 回答
4476 浏览

c# - 在 C# 中将 IntPtr 获取到 ulong 变量

我需要将一个 IntPtr 传递给 IStream.Read,并且 IntPtr 应该指向一个 ulong 变量。如何获得指向我的 ulong 变量的 IntPtr?

0 投票
2 回答
18441 浏览

c# - 如何将 IntPtr 转换回对象

所有,这是对上一个问题的跟进:C#formatting external Dll function parameters

这里特别是我试图转换为 C# 的代码:

函数“FILES_GetMemoryMapping”被调用了两次,我猜第一次是获取结构的大小,第二次是实际填充它。

“pMapping”是指向 C++ 中结构的指针,在我的 C# 代码中,我将 pMapping 作为 IntPtr 类型。下一行我可以转换为:

以 (UM0516.Mapping) 为结构。很酷,所以我刚刚分配了一些 IntPtr 指向的空间。现在是下一行...“pMapping->NbSectors = 0;”

我应该如何进入现在分配的非托管内存空间,将其类型转换为 (UM0516.Mapping) 结构,并设置其成员之一?然后确保我没有搞砸太多,这样我第二次调用“FILES_GetMemoryMapping”时,它现在可以使用这个结构了吗?

-- 好的,我接受了一些建议,现在有了这个:

我试过了,在第一次“FILES_GetMemoryMapping”调用时出现“AccessViolationException 未处理”异常

这是我所拥有的:

你认为这个异常来自“pMapping”参数吗?这可能来自我传递的其他任何东西吗?

0 投票
2 回答
3044 浏览

c# - 如何将 IntPtr/Int 转换为 Socket?

我想将 message.WParam 转换为 Socket。

如何将 IntrPtr(sock) 转换为 Socket,以便调用 Receive()?

0 投票
3 回答
9379 浏览

c# - IntPtr 到 Uint32?C#

我需要调用VirtualAllocEx并返回 IntPtr。我调用该函数来获取一个空地址,这样我就可以在那里编写我的代码库(这是在另一个进程中)。

如何将结果转换为 UInt32,以便最近可以使用该地址调用 WriteProcessMemory()?

0 投票
1 回答
11663 浏览

c# - 在 C# 中将 IntPtr 转换为 int*?

我有一个 C++ DLL 返回int*一个 C# 程序。问题是分配后int*仍然存在 C# 中的问题。null

当我将 C++ 结果分配给 时IntPtr,我得到一个正确的非空值。int*但是,任何将其转换为结果的尝试都会导致null.

我试过了:

我怎样才能得到一个非 null int*

谢谢!艾伦

0 投票
2 回答
3494 浏览

.net - 表单需要 IntPtr (VB.Net)

我需要表格的 intPtr。Control.FromHandle(control) 给了我一个句柄的控制权,但我需要相反的——从一个控件中获取句柄。我该怎么做呢?

0 投票
3 回答
5259 浏览

interop - GetPhysicalMonitorsFromHMONITOR 返回的句柄始终为空

在 Media Foundation SDK 上,有一个GetPhysicalMonitorsFromHMONITOR函数,我正在尝试使用 C# 实现该函数,但没有运气......

在返回的 PHYSICAL_MONITOR[] 中,该函数返回监视器的字符串描述,但由于一些神秘的原因,hPhysicalMonitor句柄仍为 0。

我已经使用 P/Invoke Interop Assistant 生成了签名,并稍作修改。

PHYSICAL_MONITOR 结构或其他任何东西是否需要进一步调整?

谢谢你。

0 投票
1 回答
646 浏览

c++ - 是否有与 RPC 上下文句柄等效的 WCF?

我正在更新旧的 C++ 服务以使用 WCF 而不是 RPC,并且在发送和接收句柄(HANDLE、void*..etc)时使用什么类型存在问题。在更新的服务中,我目前使用 IntPtr,但这在从 64 位版本的服务转换为 32 位版本时不起作用。IntPtr 不能反序列化,因为在内部它只是一个 void* ,这将根据您在哪个环境中运行而有所不同。

这解决了问题,因为 RPC 基础结构实际上从不发送句柄值,而是引用句柄的 GUID。此过程在以下文章中进行了描述:

请参阅上下文句柄部分

我正在寻找与此功能等效的 WCF。我可以自己在服务上编写类似的逻辑来执行此操作,甚至只是将 IntPtr 更改为 Int64,但我希望有类似于 RPC 方式的东西。

0 投票
1 回答
3081 浏览

c# - 如何用浮点值“填充” IntPtr 参数?

我正在使用 dllImport 在 C# .NET 中使用 C 库。该库中的一种方法使用数据类型 void* 作为参数。我发现,我可以在 C# 中使用与 void* 匹配的数据类型 IntPtr。

现在我根本不知道如何设置这个 IntPtr 参数的值。事实上,我想在这个参数中放入一个浮点值。我该怎么做?

提前感谢您的任何想法。西蒙娜