小编pab*_*lox的帖子

WPF控件中的本机Win32窗口

我正在开发一个需要主机本机Win32窗口的应用程序,不知怎的,我没有线索如何做到这一点.

我需要创建一个WPF对话框窗口,可以在其上显示本机Win32控件.这个对话框窗口上也会有WPF控件,所以我正在寻找某种Grid,我可以把它带到HWND并将它发送到非托管C++控件,所以它可以在它上面绘制.那可能吗 ?

我不需要知道该表面内发生了什么,只需要让C++ dll绘制它,我需要做的就是传递具有适当大小的HWND(我知道).

我是WPF的新手(用于做win32编程)并且很丢失(但我现在如何将它与C#.NET等接口)

如果你能给我任何提示,那会很棒:)

.net c# c++ wpf winapi

10
推荐指数
1
解决办法
3693
查看次数

SQL Server从大表中选择慢

我有一张约有2000多万条记录的表格.

结构如下:

EventId UNIQUEIDENTIFIER
SourceUserId UNIQUEIDENTIFIER
DestinationUserId UNIQUEIDENTIFIER
CreatedAt DATETIME
TypeId INT
MetaId INT
Run Code Online (Sandbox Code Playgroud)

表每天接收大约10万条记录.

我在除MetaId之外的每一列都有索引,因为它没有在'where'子句中使用

问题是当我想要拿起例如.所需SourceUserId的最新100条记录

查询有时最多需要4分钟才能执行,这是不可接受的.

例如.

SELECT TOP 100 * FROM Events WITH (NOLOCK)
WHERE SourceUserId = '15b534b17-5a5a-415a-9fc0-7565199c3461'
AND 
(
 TypeId IN (2, 3, 4)
    OR 
 (TypeId = 60 AND SrcMemberId != DstMemberId)
)
ORDER BY CreatedAt DESC
Run Code Online (Sandbox Code Playgroud)

我无法进行分区等,因为我使用的是标准版的SQL Server,而且Enterprise太贵了.

我也认为这张表很小很慢.

我认为问题在于ORDER BY子句,因为db必须经历更大的数据集.

任何想法如何使它更快?

也许关系型数据库对于那种数据不是一个好主意.

始终通过CreatedAt DESC订购数据

谢谢你的阅读.

PabloX

sql t-sql sql-server events

9
推荐指数
3
解决办法
3万
查看次数

从词典列表中删除重复项

我有以下词典列表:

d = [
{ 'name': 'test', 'regions': [{'country': 'UK'}] },
{ 'name': 'test', 'regions': [{'country': 'US'}, {'country': 'DE'}] },
{ 'name': 'test 1', 'regions': [{'country': 'UK'}], 'clients': ['1', '2', '5'] },
{ 'name': 'test', 'regions': [{'country': 'UK'}] },
]
Run Code Online (Sandbox Code Playgroud)

从列表中删除重复条目的最简单方法是什么?

我看到了有效的解决方案,但前提是项目没有嵌套的dicts或列表

python dictionary list

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

Rabbitmq监听所有接口

看来我的rabbitmq听取了所有接口,尽管:

在/etc/rabbitmq/rabbitmq.config中:

[{rabbit, [{tcp_listeners, [{"10.0.0.1", 5672}]}]},
  {rabbitmq_mochiweb, [{listeners, [{mgmt, [{ip, "10.0.0.1"},
                                            {port, 55672}]}]}]}].
Run Code Online (Sandbox Code Playgroud)

在/etc/rabbitmq/rabbitmq-env.conf中:

export RABBITMQ_NODENAME=rabbit
export RABBITMQ_NODE_IP_ADDRESS=10.0.0.1
export ERL_EPMD_ADDRESS=10.0.0.1
Run Code Online (Sandbox Code Playgroud)

当我运行netstat -uptan | grep beam我得到:

tcp        0      0 10.0.0.1:5672           0.0.0.0:*               LISTEN      1378/beam
tcp        0      0 0.0.0.0:33551           0.0.0.0:*               LISTEN      1378/beam
tcp        0      0 127.0.0.1:38737         127.0.0.1:4369          ESTABLISHED 1378/beam
Run Code Online (Sandbox Code Playgroud)

如何使光束不在0.0.0.0:33551上听?

ubuntu beam rabbitmq

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

从C++ ASIO库中以C#录制音频流

我需要找到录制音频流的最佳方式.我已经在C++中构建了低级代码,并将其部分接口到C#.

所以我有一个C++回调,给我一个浮点数组 - 音频信号.目前,我的C++ lib正在以wav格式将数据直接记录到文件中,它只是在结束录制时通知我的C#应用​​程序.

但是,我希望在UI方面有更多的交互性,比如"无限"进度条,记录的数据量,取消按钮等等,并且因为它最坏的时候会是一分钟,也许最好将它保存在内存中.我对.NET和C#内存管理知之甚少,所以我不知道如何有效地实现它.

在C#中是否有任何快速可调整大小的容器,我可以将数据放入其中并稍后像数组一样访问它?

我还想建立一个波形图像.我已经用C++完成了这些事情,但不知怎的,我不喜欢写太多消息,转移对象等的想法.

所以把事情放在一起:

  1. 我有C++非托管回调,它做了一些东西,从内部我想在处理数据后调用C#方法,C原型将是:

    void process(float**signal,int n); (通常[2] [n] - 用于立体声)

    什么是C#等价物,我如何从C++回调中调用它?

  2. 写连续流的最佳类是什么(如mem.put(float [] [] data,int size))然后将其作为数组或其他简单方法读取(例如从中保存wav文件或制作波形位图)

  3. 如果我在C#中这样做会不会有重大的性能损失?(托管c ++包装器调用c#函数等...可能还有一些DSP的东西)或者我只是偏执狂?:)

干杯,

pablox

我的解决方案

好的,我这样解决了:

在我的C++头文件中,我得到了传输结构:

public ref struct CVAudio {
   public:
    float *left;
    float *right;
    int length;
   };
Run Code Online (Sandbox Code Playgroud)

然后在托管C++类中我声明了:

delegate void       GetAudioData([In, Out] CVAudio^ audio);
Run Code Online (Sandbox Code Playgroud)

然后我可以用它作为初始化音频的方法的参数:

void                initializeSoundSystem(void *HWnd, GetAudioData ^audio);
Run Code Online (Sandbox Code Playgroud)

那个代表也有一个C原型

typedef void (CALLBACK *GETAUDIODATA)(CVAudio ^a);
Run Code Online (Sandbox Code Playgroud)

在内部C++类中使用的是:

void                initializeSoundSystem(HWND HWnd, GETAUDIODATA audio);
Run Code Online (Sandbox Code Playgroud)

然后第一种方法的主体是:

void VDAudio::initializeSoundSystem(void *HWnd, GetAudioData ^audio) 
{
    HWND h = (HWND) HWnd; …
Run Code Online (Sandbox Code Playgroud)

c# c++ audio wpf asio

5
推荐指数
1
解决办法
2742
查看次数

标签 统计

c# ×2

c++ ×2

wpf ×2

.net ×1

asio ×1

audio ×1

beam ×1

dictionary ×1

events ×1

list ×1

python ×1

rabbitmq ×1

sql ×1

sql-server ×1

t-sql ×1

ubuntu ×1

winapi ×1