小编ASt*_*oob的帖子

VS2013专业本地64位调试MSVSMON问题

每次我尝试在Windows 8 64位计算机上的VS2013 Professional中启动本地调试会话时,都会收到以下错误:

操作时间超过预期

"64位调试操作的时间比预期的要长.这可能是由于与第三方网络软件不兼容造成的.请参阅帮助以解决这些问题."

紧接着是:

启动调试会话时收到的错误消息

"无法启动程序.Microsoft Visual Studio调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行请参阅帮助以获取有关配置远程调试的帮助"

要启动调试会话,请按"Local Windows Debugger"按钮:

没有什么可怕的:绝对不是远程调试.

我试过的事情:

  • 安装Visual Studio 2013远程工具
  • 在尝试调试时运行这些工具.
  • 按照这个SO答案的说明.
  • 完全关闭我的ZoneAlarm防火墙(虽然手动运行MSVSMON.EXE不会导致它询问我的权限......它是否甚至运行服务器?)
  • 为监视器的Windows防火墙添加例外
  • 将MSVSMON.EXE设置为"无身份验证"模式
  • 检查我的"HOSTS"文件:只有评论.
  • 重新启动

进一步症状:

  • 仅在调试64位软件时发生.
  • 无论用什么语言都会发生(C++,C#都有相同的问题)

解决这个问题的任何帮助都会很棒.

谢谢.

c# c++ windows debugging visual-studio-2013

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

UTF32和C#问题

所以我遇到了一些字符编码问题.当我将以下两个字符放入UTF32编码的文本文件中时:


?
Run Code Online (Sandbox Code Playgroud)

然后在它们上运行此代码:

System.IO.StreamReader streamReader = 
    new System.IO.StreamReader("input", System.Text.Encoding.UTF32, false);
System.IO.StreamWriter streamWriter = 
    new System.IO.StreamWriter("output", false, System.Text.Encoding.UTF32);

streamWriter.Write(streamReader.ReadToEnd());

streamWriter.Close();
streamReader.Close();
Run Code Online (Sandbox Code Playgroud)

我明白了:

?
?
Run Code Online (Sandbox Code Playgroud)

(相同的字符两次,即输入文件!=输出)

一些可能有用的东西:第一个字符的十六进制:

15 9E 02 00

而对于第二个:

15 9E 00 00

我正在使用gedit创建文本文件,使用单声道用于C#,我正在使用Ubuntu.

如果我指定输入或输出文件的编码也没关系,如果它是UTF32编码,它就不喜欢它.如果输入文件是UTF-8编码,它可以工作.

输入文件如下:

FF FE 00 00 15 9E 02 00 0A 00 00 00 15 9E 00 00 0A 00 00 00

这是一个错误,还是仅仅是我?

谢谢!

c# mono encoding gedit utf-32

8
推荐指数
1
解决办法
5099
查看次数

C++模板:有条件启用的成员函数

我正在创建一个非常小的C++项目,我想根据自己的需要创建一个简单的矢量类.该std::vector模板类不会做.当向量类由chars(即vector<char>)组成时,我希望它能够与a进行比较std::string.经过一番乱搞之后,我编写的代码既可以编译也可以执行我想要的操作.见下文:

#include <string>
#include <stdlib.h>
#include <string.h>

template <typename ElementType>
class WorkingSimpleVector {
 public:
    const ElementType * elements_;
    size_t count_;

    // ...

    template <typename ET = ElementType>
    inline typename std::enable_if<std::is_same<ET, char>::value && std::is_same<ElementType, char>::value, bool>::type
    operator==(const std::string & other) const {
        if (count_ == other.length())
        {
            return memcmp(elements_, other.c_str(), other.length()) == 0;
        }
        return false;
    }
};

template <typename ElementType>
class NotWorkingSimpleVector {
 public:
    const ElementType * elements_;
    size_t count_;

    // ... …
Run Code Online (Sandbox Code Playgroud)

c++ templates enable-if c++11

8
推荐指数
1
解决办法
5286
查看次数

java - 在java中,为什么Exception是基类而不是RuntimeException?

Java规范要求如果抛出异常,则由try/catch语句处理,或者使用"throws XYZException"声明该函数.这有RuntimeException的例外,如果抛出它而没有被捕获,则可以.

这可能听起来像是一个意见问题,但我想的越多,它看起来就越反直觉:

为什么我们有一个RuntimeException扩展Exception?

当我第一次开始使用Java时,我认为必须以这种方式捕获所有异常,并且它是有意义的,因为所有异常都扩展了Exception.有一个RuntimeException异常异常似乎违反了OOP:P.由于RuntimeException使throws变得多余,为什么Java在运行时首先不允许所有异常,只有当你想强制调用者处理那种类型的异常时才添加throws?

例子:

void noThrows() {
    throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)

......没有错误.

void hasThrows() throws AnyBaseOfXYZException {
    throw new XYZException();
}
Run Code Online (Sandbox Code Playgroud)

......没有错误.

void testFunction() {
    hasThrows();
}
Run Code Online (Sandbox Code Playgroud)

...失败,因为"hasThrows"抛出AnyBaseOfXYZException,并且没有处理

void testFunction() {
    try {
        hasThrows();
    } catch (AnyBaseOfXYZException e) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

......没有错误.

我想过可能会有一些扩展Exception的"CompileTimeException",但是当你给它足够的思考时,它就不会像RuntimeException那样丑陋.

基本上,throws除了RuntimeExceptions之外,为什么Java决定强制要求所有异常,当所有异常都可以是运行时异常时,除非另有说明throws

java exception

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