小编Jon*_*age的帖子

如何调试和解决'DisconnectedContext'崩溃?

我有一个GUI应用程序连接到传感器,收集数据并使用BackgroundWorker线程在后台处理它.

目前我正在使用ProgressChanged看起来运行良好的GUI向GUI发布数据.我已经提高了数据速率并发现了一个问题; 如果软件运行几分钟,处理器使用量似乎会增加,直到它在我的机器上的两个核心上达到接近100%,并且在那时,我得到一个错误,其中显示:

托管调试助手'DisconnectedContext'检测到'myapp.exe'中存在问题.附加信息:上下文0xe2ba0已断开连接.从当前上下文释放接口(上下文0xe2d10).这可能会导致损坏或数据丢失.

我已经阅读了网络上的一些内容,这表明如果GUI应用程序无法足够快地提取消息,就会发生这种情况.我注意到如果我快速调整窗口大小(即加载更多消息),我可以引发相同的崩溃更快发生,这支持我认为的理论?

所以这里的问题是:

  1. 是否有人同意我关于消息抽吸的假设?
  2. 是否有另一种解释?
  3. 有什么方法可以证明它(可能会查看队列中的消息数量)?
  4. 这些都是不好的代码气味,这表明我的方式是错误的吗?

非常感谢任何建议.

crash debugging c++-cli

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

如何查看GenericTypeDefinition是否实现IEnumerable <>

我有一个方法,检查类型是否是通用的,然后检查GenericTypeDefinition是否是IEnumerable<>.

static Type GetEnumerableType(Type type)  
{  
    if(type.IsGenericType) {  
        var genericTypeDefinition = type.GetGenericTypeDefinition();  
        if (genericTypeDefinition == typeof(IEnumerable<>)) {  
            return type.GetGenericArguments()[0];  
        }  
    }  
    return null;  
}
Run Code Online (Sandbox Code Playgroud)

如果它是一个IEnumerable,它就像一个魅力.如果GenericTypeDefinition是IList<>List<>它不起作用.我试过了..

typeof(IEnumerable<>).IsAssignableFrom(genericTypeDefinition)
Run Code Online (Sandbox Code Playgroud)

..没有成功.当然必须有更好的方法然后链接其他语句?

c# generics types

6
推荐指数
2
解决办法
2539
查看次数

如何在Windows 7/visual studio 2008下编译Windows XP

我正在运行Windows 7和Visual Studio 2008 Pro并尝试让我的应用程序在Windows XP SP3上运行.

这是一个非常小的命令行程序,所以应该有任何荒谬的依赖:

// XPBuild.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    printf("Hello world");
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在某处读到定义几个常量如WINVER应该允许我为其他平台编译.我已经尝试将以下内容添加到我的/D编译器选项中:

;WINVER=0x0501;_WIN32_WINNT 0x0501;NTDDI_VERSION=NTDDI_WINXP
Run Code Online (Sandbox Code Playgroud)

但这没有任何区别.当我在我的Windows XP机器上运行它(实际上在虚拟机中运行)时,我收到以下错误:

此应用程序无法启动,因为应用程序配置不正确.重新安装应用程序可能会解决此问题.

那么我错过了什么?是否还需要运行MSVC编译的程序或其他编译器选项或其他东西?

c++ windows-xp cross-platform compilation windows-7

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

如何以编程方式更改.lnk以更改其目标?

有没有办法打开Windows快捷方式(.lnk文件)并更改它的目标?我找到了以下代码片段,它允许我找到当前目标,但它是一个只读属性:

Shell32::Shell^ shl = gcnew Shell32::Shell();
String^ shortcutPos = "C:\\some\\path\\to\\my\\link.lnk";
String^ lnkPath = System::IO::Path::GetFullPath(shortcutPos);
Shell32::Folder^ dir = shl->NameSpace(System::IO::Path::GetDirectoryName(lnkPath));
Shell32::FolderItem^ itm = dir->Items()->Item(System::IO::Path::GetFileName(lnkPath));
Shell32::ShellLinkObject^ lnk = (Shell32::ShellLinkObject^)itm->GetLink;
String^ target = lnk->Target->Path;
Run Code Online (Sandbox Code Playgroud)

我找不到任何改变目标的东西.我唯一的选择是创建一个新的快捷方式来覆盖当前的快捷方式吗?..如果是的话,我该怎么做?

.net shell32 c++-cli windows-xp-embedded

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

如何检测用户的区域设置以获取正确的csv分隔符?

我有一个简单的数据转换工具,它可以产生的一个输出是一个csv文件.

这在英国完美无缺,但当我把它运到德国客户时,我遇到了一些问题.特别地,它们使用' ,'来表示浮点数中的小数点,反之亦然.这意味着当他们在excel中打开他们的数据文件时,至少可以说结果相当混乱:-)

替换正确的字符是微不足道的,但我如何检测是否应用此字符?

编辑:

所以这:

a,b,c
1.1,1.2,1.3
"1.1",1,2,"1,3"
"this,is,multi-
-line",this should be column 2, row 4
a;b;c
"a;b","c"
Run Code Online (Sandbox Code Playgroud)

..在加入英国的Excel时看起来像这样:

+----------------+-----+-----+-----+
| a              | b   | c   |     |
+----------------+-----+-----+-----+
| 1.1            | 1.2 | 1.3 |     |
+----------------+-----+-----+-----+
| 1.1            | 1   | 2   | 1,3 |
+----------------+-----+-----+-----+
| this,is,multi- |     |     |     |
| -line          | 2   | 4   |     |
+----------------+-----+-----+-----+
| a;b;c          |     |     |     |
+----------------+-----+-----+-----+
| a;b            | c   |     |     |
+----------------+-----+-----+-----+ …
Run Code Online (Sandbox Code Playgroud)

.net culture locale c++-cli

6
推荐指数
4
解决办法
9051
查看次数

如何以编程方式查找图像中特定要素的像素位置?

我正在使用OpenCV和Python构建自动电/气表读数器.我已经使用网络摄像头拍摄:

在此输入图像描述

然后我可以使用afine变换来取消图像的变形(这个例子的改编):

def unwarp_image(img):
    rows,cols = img.shape[:2]
    # Source points
    left_top = 12
    left_bottom = left_top+2
    top_left = 24
    top_right = 13
    bottom = 47
    right = 180
    srcTri = np.array([(left_top,top_left),(right,top_right),(left_bottom,bottom)], np.float32)

    # Corresponding Destination Points. Remember, both sets are of float32 type
    dst_height=30
    dstTri = np.array([(0,0),(cols-1,0),(0,dst_height)],np.float32)

    # Affine Transformation
    warp_mat = cv2.getAffineTransform(srcTri,dstTri)   # Generating affine transform matrix of size 2x3
    dst = cv2.warpAffine(img,warp_mat,(cols,dst_height))     # Now transform the image, notice dst_size=(cols,rows), not (rows,cols)

    #cv2.imshow("crop_img", dst)
    #cv2.waitKey(0)

    return dst …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing

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

你怎么'取消'UdpClient :: BeginReceive?

我有一个线程,它等待来自多个接口的UDP消息UdpClient::BeginReceive和一个回调,它调用UdpClient::EndReceive拾取数据并传递它.

如果在5秒后我没有得到任何东西,我从调用的函数返回,UdpClient::BeginReceive以便可以取消该进程并发出另一个广播,这将触发外部客户端发送UDP响应.如果我们没有取消,我UdpClient::BeginReceive再次调用该函数来检查新数据.

如果客户端没有及时收到任何数据,是否有办法取消该异步请求而无需EndReceive无限期地调用哪些块?我得到的印象是,运行数百个异步触发器是一个坏主意.

.net asynchronous c++-cli udpclient

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

我应该如何记录 Python 方法参数,以便它们出现在智能感知和 DOxygen 中?

我一直在使用 PyTools for Visual Studio 2013,并且想知道是否可以以智能感知和 DOxygen 都能理解的方式记录参数。

例如,我一直在尝试这样(摘自PEP257的片段):

def complex(real=0.0, imag=0.0):
    """Form a complex number.

    Keyword arguments:
    real -- the real part (default 0.0)
    imag -- the imaginary part (default 0.0)
    """

    print("Test func running")

if __name__ == '__main__':
    complex(
Run Code Online (Sandbox Code Playgroud)

...但智能感知似乎没有接受参数描述:

在此输入图像描述

python intellisense doxygen pvts

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

我需要做什么以及为Windows Vista/7(32位和64位)签名设备驱动程序需要多少费用?

我有一些基本上是LibUSB-Win32的驱动程序,带有一个新的.inf文件来描述描述我的硬件的产品/供应商ID和字符串.这适用于32位窗口,但64位版本有问题; 即微软以他们的智慧要求所有司机都进行数字签名.

所以我的问题是这样的:

  1. 是否有我可以使用的已签名的LibUSB-Win32驱动程序版本?
  2. 如果还没有一些已签名的我可以使用,我必须做些什么才能让我的驱动程序签名.
  3. 我是否需要单独签署64位和32位版本,这会花费更多吗?
  4. 一个自由选择要与客户签订了?
  5. 除了要求我的客户每次启动他们的机器时都启动进入测试模式,我还应该考虑其他任何选项(不是我考虑的选项).
  6. 除Verisign之外还有其他代码签名选项吗?显然像OpenID这样的免费/开源计划会很棒;-)

64-bit windows-vista windows-7 driver-signing

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

有没有办法从octave使用.net .dlls?

正如问题的标题所说,有没有办法从八度音调调用.net dll中的函数作为导入数据的方法?

.net integration octave

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