繁体   English   中英

如何通过 COM 接口将 64 位 integer 从 C++ 发送到 ZD7EFA19FBE7D2372FD5ADB60242

[英]How send 64 bit integer over COM interface from C++ to C#

我有一个 64 C++ COM 服务器和一个 C# ZD47C174ED277BDF06CFC72763AB779 客户端。 现在我想将一个结构从服务器传递到客户端,该客户端包含一个 64 位 integer。

我对 MIDL 编译器使用关键字“hyper”,可以看到该字段在 C++ 中为_int64 ,在 C# 中为long

但是,如果我在 C++ 中设置值0x0000000000000001 ,我会在 C# 中得到0x0000000100000000

我该如何纠正这个问题?

实际上是alignment的问题。 我的 64 位数字在结构中没有对齐。 在结构定义之前添加了#pragma pack(4)。 然后它起作用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM