小编Kap*_*nir的帖子

在确认第一条消息后发送第二条消息.RabbitMQ能保证订单吗?

假设几个生产者发布到同一个交易所E(扇出).每个制作人都有自己的频道.队列Q必须交换E.生成器P1将消息M1发布到E并从E接收确认A1.仅在确认A1之后,第二生成器P2发布第二消息M2.RabbitMQ是否保证Q中的消息顺序:M1是第一个,M2是第二个?那将是订阅Q消费者总是收到M1和那之后的M2?

rabbitmq

9
推荐指数
1
解决办法
690
查看次数

exe和dll之间的接口与不同的C/C++运行时库

给定:Executable使用dll.它们具有不同的c/c ++运行时.它们之间的接口有哪些限制?除了他们使用相同的编译器,相同的Boost版本(但不同的预编译的升压库).

我知道不同的运行时可以有不同的堆.因此,delete必须与同一堆中的new对应.

最重要的是我们无法通过接口STL对象传递,因为当我们构建exe时,STL对象与一个运行时链接,当构建dll时,相同的对象(如果我们通过引用传递它或通过接口复制)将与另一个运行时链接.另一个运行时可以具有该对象的不同实现.

让我们考虑一下案例:

  1. 我认为以下是安全的.Dll导出函数,该函数具有参数:对包含私有STL类作为成员的导出用户定义类的引用.Dll为此对象分配内存.当想要删除它时,Exe调用此对象的Release方法.

  2. 我认为以下是不安全的.用户定义的类在exe中实例化并通过exe/dll接口传递.此类包含私有STL类作为成员.exe和dll共享此用户类的头文件/实现文件.当此类在单独的项目中构建时,将使用不同的STL实现.例如,string :: size()(来自不同的运行时)的不同实现将应用于内存中的同一对象.

  3. 我认为以下是安全的.用户定义的类在exe中实例化并通过exe/dll接口传递.此类不依赖于标准库,它仅使用原始C++类型.exe和dll共享此用户类的头文件/实现文件.此外,我们必须控制new和delete对应于同一个堆.例如,我们可以重载new/delete,因此它们使用:: GetProcessHeap.

  4. 我认为以下是不安全的:通过exe/dll接口传递boost对象,因为它们可以依赖于标准库类.删除也可能与新堆不对应.

  5. 我认为以下是不安全的:即使我们通过exe/dll接口传递boost对象并且它们不依赖于标准库类但不是仅作为头实现 - 而是可以使用一个boost lib创建对象(对于一个运行时)并与另一个boost lib(另一个运行时)一起使用.删除也可能与新堆不对应.

此外,我想使用一些智能指针来传递对象(在第3项中提到)从exe到dll以及从dll到exe的引用.我认为这个智能指针也应该重载new/delete以从默认进程堆分配引用计数器.当它试图删除指向对象时,它将调用由该对象重载的删除(如第3项)

对于第1项中的对象,我想使用自定义智能指针,它将调用指向对象的释放方法(作为boost :: shared_ptr与自定义版本)

没有提到哪些问题?请纠正我.

c++ boost module runtime interface

7
推荐指数
1
解决办法
2029
查看次数

如何将小二进制文件作为元数据Map <fileName,fileContent>放入Parquet文件?任何限制?

如何将几十个小二进制文件作为元数据 放到Parquet文件中Map<fileName, fileContent>

小文件是文件,平均大约100KB的图片.

我们已经将一些短字符串值放到了镶木地板元信息图中,但是对地图条目的数量,地图的总大小或单个地图值的大小有限制吗?如果是,有什么限制?也许我的目标不太可能违反限制?

hadoop parquet

7
推荐指数
0
解决办法
281
查看次数

如何使用COM在两个进程之间传输数据

我对COM有一般的了解,并希望了解COM如何帮助进行数据传输.假设有两个进程,Process-A和Process-B,它们都希望彼此共享一些数据,当然有很多RPC机制,但我想使用COM.

  1. 您无法创建COM dll,因为它将变得特定于进程并且无法使用
  2. 我们可以创建一个单吨COM EXE服务器并将结构包装在COM CoClass中并将其作为属性公开,然后......不知道如何操作?

以上是我的理解,你们中的任何人都可以帮助我清楚我对这个主题的理解吗?基本上我想在使用COM的两个进程之间共享一个数据结构

com atl visual-c++

6
推荐指数
1
解决办法
998
查看次数

默认的SQLServer实例名是否为空字符串?

可以默认的SQLServer实例名称为空字符串?客户认为他有".\"作为服务器\实例名称.有两种实例:默认实例和命名实例,并且看起来没有命名的逻辑没有名称.但是MSDN说:默认名称是MSSQLSERVER.

sql-server connection-string

6
推荐指数
1
解决办法
4185
查看次数

如何在Windows中的Perforce中生成证书?

Windows中,根据 docs, 我设置了P4SSLDIR:

设置P4SSLDIR = E:\ Programs \ perforce \ P4SSLDIR \

尝试生成证书和私钥会产生错误:

C:\ programs> p4d -Gc

Perforce服务器错误:未定义P4SSLDIR或未引用有效目录。

如何克服这一点来生成私钥和证书?

windows ssl perforce

5
推荐指数
0
解决办法
635
查看次数

如何针对SQL Server分析实体框架活动?

使用SQL Server Profiler跟踪存储过程的活动很容易。但是如何通过实体框架跟踪LINQ发出的SQL查询呢?我需要确定这样的查询(LINQ代码),它们消耗大量时间,被最频繁地调用,因此是进行优化的第一个候选对象。

sql-server entity-framework sql-server-profiler

5
推荐指数
2
解决办法
251
查看次数

如何在Boost属性树中重命名节点/元素?

例如,我具有以下结构的boost属性树(通过使用xml或其他方式读取流来创建):

<A>
  <B>
    <C></C>
  </B>
</A>
Run Code Online (Sandbox Code Playgroud)

如何使用新的键:N 将现有树元素B 重命名为新元素。因此,调用此固定树的write_xml应该给出新的xml结构:

<A>
  <N>
    <C></C>
  </N>
</A>
Run Code Online (Sandbox Code Playgroud)

请提供代码(如果可能的话),或者解释为什么不能这样做。备注:将C下的子树附加到新生成的根也是可以接受的,但是优先级是直接重命名。

c++ boost boost-propertytree

4
推荐指数
1
解决办法
938
查看次数

如何清除/删除文件 licenses.licx

我正在从解决方案中删除对某些组件的依赖。其目录中的某些 C# 项目包含文件 licenses.licx,并在其文本 csproj 表示中引用了此文件。大多数 licenses.licx 仅引用我从解决方案中删除的组件。如何清理这个参考:

  • 从两个项目中删除文件 licenses.licx(如何通过 VS GUI 执行此操作?我无法在 GUI 中找到如何选择 licenses.licx)和源代码控制;
  • 在 licenses.licx 中剪切字符串引用,并在项目和源代码控制中保留空的 licenses.licx。

c# visual-studio licenses.licx emptylicenseslicx licenseslicx

3
推荐指数
1
解决办法
5093
查看次数