问题标签 [marshalling]

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 投票
4 回答
11084 浏览

c# - MessageBox.Show() 是否自动编组到 UI 线程?

我通过 ThreadPool.QueueUserWorkItem 启动一个线程,其中有一个消息框对话框:

System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show("您想在后台下载升级吗?..", "升级可用", MessageBoxButtons.YesNo);

它似乎工作正常,但是在一些客户建议他们没有收到消息弹出后,我有点怀疑。我在 .NET 框架 2.0+ 中感觉您不需要编组这个特定的调用,它会为您完成。正确的?

这是一个感兴趣的半相关主题: 为什么在 MessageBox.Show 中使用所有者窗口?

0 投票
4 回答
4523 浏览

c++ - 将多个参数传递给 CreateThread

问题:

  • 如何将两个参数具体传递给CreateThread

    • 论据一,类型SOCKET
    • 参数二,接口指针

    _COM_SMARTPTR_TYPEDEF(Range, __uuidof(Range));

    RangePtr pRange; //pass pRange

建议:

0 投票
2 回答
1471 浏览

.net - 等效于字节数组的 Marshal.PtrToString* 方法

如果我有一个非托管指针,并且我想将指定数量的字节从该位置传输到 Byte 数组,那么最好的方法是什么?

即什么是 Marshal.PtrToString* 方法的等价物,但目标是 Byte()

谢谢

0 投票
3 回答
114 浏览

c++ - COM 服务器可以重新分配 ([in, out] CACLSID * arg) 吗?

使用这样声明的 COM 接口方法:

关于编组,是否允许服务器重新分配计数数组?(我认为是,但我不确定了)

它当前的实现只替换了现有的 ID,但我想实现一个更改(不会破坏合同),可以返回更多项目而不引入新接口。

[编辑]请注意CACLSID已经是一个数组,包含一个计数和一个指针。

0 投票
16 回答
112425 浏览

java - 什么是序列化?

我开始使用面向对象编程 (OOP),想知道:在 OOP 用语中,序列化的含义是什么?

0 投票
1 回答
738 浏览

c# - 从 PInvoked OpenFileDialog (GetOpenFileName) 编组一个非托管的字符串数组

OpenFileDialog 返回一个指向内存的指针,该指针包含一系列以 null 结尾的字符串,后跟 final null 以指示数组的结尾。

这就是我从非托管指针取回 C# 字符串的方式,但我确信必须有一种更安全、更优雅的方式。

0 投票
2 回答
12710 浏览

c# - 从 C# 调用 C++ dll 函数:结构、字符串和 wchar_t 数组

这是我需要解决的一个简单问题,但它让我觉得我的头发变白了,因为我所有的尝试都返回了同样的错误:

“试图读取或写入受保护的内存。这通常表明其他内存已损坏。”

我有一个用 C++ 编写的示例应用程序,它调用 dll。以下是相关代码:

现在,当我调试 C++ 代码时,它会做正确的事情——将一些 Unicode 数据写入数据结构。

这是我尝试在 C# 中做同样的事情

我的猜测是我没有正确编组 RECO_DATA 结构,因为 convertHKID_Name 函数写入的正是这个结构。但是我应该如何解决它?

0 投票
13 回答
51082 浏览

json - 与 GWT 一起使用的 Json <-> Java 序列化

我正在寻找一个可以与 GWT 一起使用的 Java的简单Json (de)serializer。我搜索了一下,发现一些解决方案要么需要注释每个成员,要么定义无用的接口。挺无聊的。为什么我们没有一些非常简单的东西

0 投票
2 回答
226 浏览

.net - 如何将 C++ 项目转换/调用到/从.Net?

我目前有一个巨大的项目,我最近从 VC6 转换到 2005。现在我真的很想为一些功能创建一个新的前端,但是程序的主要逻辑是基于 c++ 的。代码库也围绕它自己的元类型和定制类展开。

我能想出的最佳解决方案是从 C++ 项目 dll 中调用函数。然而,这导致了巨大的数据编组投资,其中数据跨越了 c++ 和 c# 之间的边界。我想知道是否还有其他选择(完全重写不是一种选择)。

谢谢丰富

0 投票
3 回答
2922 浏览

c# - C#格式化外部Dll函数参数

我还没有找到关于这个主题的好参考。对于这个例子,我们将使用一些我试图移植到 C# 的 C++ 代码。

在 C++ 领域,我们有以下外部库函数原型:

并在其中使用如下:

现在我正在尝试将第一行移植到 C# 中,但这里没有明确的路径。

这是我到目前为止所得到的:

现在的问题是:有没有好的指南告诉我“PSTR pPathFile”应该是“[MarshalAs(UnmanagedType.LPStr)] string pPathFile”......假设这是正确的?

或者,指向“PMAPPING”结构的指针变成“out IntPtr pMapping”......假设这是正确的?

对这个人有什么帮助吗?