小编Fan*_*Fox的帖子

C#.NET VS2010断点不起作用

当我去调试我的代码时,我的所有断点都被透明填充(只留下轮廓),中间有一个感叹号的小三角形位于断点的角落.

将鼠标悬停在断点上时的错误是'当前不会触发断点.源代码与原始版本不同.

我没有尝试在一个多小时内调试我的代码,在那段时间里我添加了一个具有多个线程函数的新类.

我采取的步骤:

  1. 清理并重建项目
  2. 设置选项'运行时,发生构建或部署错误时:'到'不要启动'
  3. 重新保存项目.
  4. 将项目文件夹从闪存驱动器移到HD上
  5. 关闭并重新打开VS2010

.net c# breakpoints visual-studio-2010

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

在matlab中的3D体素显示

我有一个网格,它是3D,它存储一个数字.

以下是我的网格示例,如果它是2*2*2:

(:, :, 1) -> [0, 0;
              0, 0]
(:, :, 2) -> [0, 0;
              0, 0]
Run Code Online (Sandbox Code Playgroud)

数字0通常是我想用颜色或纳米表示的数字,如果那里没有体素的话.我想做的是用matlab显示体素网格,如下图所示:

在此输入图像描述

除了vocels应该用单元格中的数字着色.

有没有人知道如何做到这一点,如果有一个图书馆或某种方式自己写?

matlab voxel

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

如何将本地代码还原到以前的版本svn

我想只将本地代码还原到以前的版本.

对于额外的点,我想要做的是将文件夹还原到以前的版本(仅在本地)并生成与其后的版本不同的文件.

例如,我说我有100版本.我想要版本99和它之间的差异和100,然后98和99等.

svn version-control

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

Visual Studio远程编译和运行

我试图弄清楚是否可以将Visual Studio 2012用作完整的Linux开发套件.我知道这不是常规问题,而是和我一起工作.到目前为止,我能够使用Visual Studio作为文本编辑器在我的计算机上运行的Linux虚拟机内编辑.

我这样做的方法是设置一个永久的ssh门户,在我的窗口中充当硬盘驱动器.我使用名为WebDrive的程序完成了这项工作:

在此输入图像描述

这很酷,这意味着我有能力从Visual Studio完全查看我的Linux c ++项目.这提供了我喜欢的关于visual studio的所有酷c ++编辑内容.

那么从哪里来?

基本上我现在拥有的是一个重要的美化文本编辑器.

我想做的是让整个'shabam'工作.

我希望能够在服务器地址远程编译和运行visual studio中的代码.可能吗?代码是用cmake和g ++编译器构建的吗?

c++ ide visual-studio-2012

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

除了.NET 3.5之外,不能在c#项目中命中断点

我刚刚将以前在VS2008中运行的解决方案升级.NET 3.5到VS2015上运行.NET 4.6.

有关该项目的一些信息

  1. 该解决方案只有一个项目,它Unit Test Project只是创建'AVTest.dll`,我们将其加载到NUnit中以对某些硬件执行某些功能测试.
  2. 我们不直接运行它,我们通过启动外部程序调试事件打开NUnit.exe .我们加载由c#build生成的.dll,NUnit能够运行一系列测试.通过以这种方式运行NUnit,我们过去能够在单元测试中调试例程.
  3. NUnit版本是2.5.10,它使用.NET 2.0(鉴于我们运行并打破.NET 3.5似乎这可能不是这样).我也升级了o最新稳定版的NUnit(2.6.4 .NET 3.5),没有任何变化.
  4. 我们没有启动项目 - 一切都通过NUnit运行.

所有东西都构建并正确运行但是在尝试设置断点时出现以下错误:

断点当前不会被击中.没有为此文档加载任何符号.

当我切换回.NET 3.5时,我能够在代码中设置断点.我能做到这一点的事实让我觉得我缺少一些关于.NET版本的简单,因为我不太熟悉c#.

我知道这个问题,并尝试了问题本身和答案第一页的所有内容.

关于如何检查没有加载符号的原因是否有任何进展?

一个新的发展

当我附加到已经运行的Nunit测试时,我能够正常调试.我不确定它为什么在运行后(通过启动外部程序)或者为什么在3.5而不是4.6中工作,但它可以被调试...

.net c# nunit breakpoints

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

#define TRUE!FALSE vs #define TRUE 1

撇开自从c99 stdbool.h已经存在的事实,在定义处理布尔类型的宏时C,以下是否有任何区别?

#define FALSE 0

#define TRUE 1       // Option 1 
#define TRUE !FALSE  // Option 2
Run Code Online (Sandbox Code Playgroud)

从这里的实例来看,它似乎没有什么区别.两种选择都有技术优势吗?(不包括第二个例子对c ++ bool对象更好的事实.)

c

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

为以太网适配器设置自定义IP时无法绑定套接字

问题

在我们运行RTEMS 4.9.2的系统上,我们遇到了一个非常奇怪的套接字通信问题.我们正在设置套接字并使用以下命令进行绑定:

// Bind the socket to set the local port
sockaddr_in localSocketAddress = {0};
localSocketAddress.sin_family = AF_INET;
localSocketAddress.sin_port = (u_short)localPort;
localSocketAddress.sin_addr.s_addr = localAddress;

if (bind( mSocket, (sockaddr *)&localSocketAddress, sizeof(sockaddr_in)) == SOCKET_ERROR)
{
    int errorOut = errno;
    ...
Run Code Online (Sandbox Code Playgroud)

这适用于UDP通信,除了下面解释的奇怪的特定场景.bind即使设置正确,我们遇到的问题是此调用失败.我们得到125RTEMS 的错误EADDRNOTAVAIL:

请求了一个不存在的接口,或者请求的地址不是本地的.

表观原因

在设备启动时,我们可以通过以下两种方式之一设置我们的网络:

  1. 网络IP和SUBNET基于默认引导加载程序(UBOOT)中的内容进行自动配置,并通过RTEMS OS进行设置.

  2. rtems_bsdnet_ifconfig调用RTEMS函数以在引导时间后更改唯一以太网接口的IP地址.

为了澄清,选项2的调用方式如下:

rtems_bsdnet_ifconfig(eth_interface, SIOCSIFADDR, &ipaddr);
Run Code Online (Sandbox Code Playgroud)

如果按照选项1的指示设置网络,则一切都按预期工作,但如果使用选项2(即使在设置与选项1定义的网络选项匹配的情况下),则套接字绑定失败.

RTEMS是否存在已知原因或错误,表明如果重新配置IP,此绑定将失败?

附加信息

  • 我们正在使用主要使用的方法设置新的IP地址(选项2)ioctl("eht1", SIOCSIFADDR, ...).

  • 如果我们绑定我们的套接字而不指定本地ADDRESS(即使用INADDR_ANY)那么它在任何情况下都可以工作.

  • rtems_bsdnet_ifconfig是一个简单的ioctl功能接口.它来自rtems_glue.c并具有功能标志int rtems_bsdnet_ifconfig(const char *ifname, …

c c++ sockets networking rtems

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

将 google protobuf lib 静态链接到 dll 库

在安装和使用 google protobuf 库(在 Windows 上安装 Protobuf)的说明页面上,它指出:

如果您的项目本身是供第三方软件使用的 DLL,我们建议您不要在库的公共接口中公开协议缓冲区对象,并且将协议缓冲区静态链接到您的库中

我想知道如何做到这一点。据我所知,您可以通过两种方式构建 google protobuf:静态和动态。

如果您动态构建它,您将面临上述问题。如果您静态构建它,那么您将使用多线程 (/MT) 的Visual Studio 中的代码生成类型。这意味着在我的 dll 库(它是用多线程 DLL (/MD)构建的)中,您将收到以下链接器错误:

错误 LNK2038:检测到“RuntimeLibrary”不匹配:值“MTd_StaticDebug”与 Emulator.obj 中的值“MDd_DynamicDebug”不匹配

现在有几个问题涉及如何解决这个问题:

但答案通常是,更改您的库以匹配其他库的构建类型。问题是,我不想那样做,我想要一个 DLL。我想静态链接 google protobuf,如他们的文档中所述。我怎样才能做到这一点?

c++ dll linker linker-errors protocol-buffers

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

使用 protobuf CodedInputStream 从 byte[] 读取

在下面的代码中,我想在 C# 中使用预定义的 protobuf 消息。我发现我能够编写并使用该方法来获取已创建的方法并制作byte[]

 ContainerMessage containerMessage = new ContainerMessage();
 containerMessage.Type = CommandType.Connect;
 containerMessage.Connect = new Connect();
 containerMessage.Connect.ClientName = "TemporaryClientName";

 byte[] stream = new byte[containerMessage.CalculateSize()];   
 using (Google.Protobuf.CodedOutputStream outstream = new Google.Protobuf.CodedOutputStream(stream))
 {
     containerMessage.WriteTo(outstream);
 }
Run Code Online (Sandbox Code Playgroud)

这按预期工作,我可以检查消息,并且值与预期的一样byte[]。但是,如果我尝试反序列化,即使是byte[]我刚刚创建的这个简单的:

  using (Google.Protobuf.CodedInputStream instream = new Google.Protobuf.CodedInputStream(stream))
  {
      instream.ReadMessage(containerMessage);
  }
Run Code Online (Sandbox Code Playgroud)

它失败了:

Google.Protobuf.dll 中发生“Google.Protobuf.InvalidProtocolBufferException”类型的未处理异常

附加信息:协议消息包含无效标签(零)。

这是从byte[]正确的 protobuf 反序列化的方式吗?


Protobuf 的定义是:

message ContainerMessage {
    CommandType type = 1;
    bool commandSuccess = 2;

    oneof message {
        Connect connect = 3;
    } …
Run Code Online (Sandbox Code Playgroud)

c# protocol-buffers

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

包装原子类型并确保它保持原子状态

我有一个独特而有趣(可怕)的场景,迫使我做一些棘手的事情.问题如下:

  1. 我们需要一个原子类型来在实时线程和后台加载线程之间进行无锁同步.
  2. 类型(不幸的是)必须编译:

    一个.QNX只有c ++ 03,但支持boost::atomic.

    湾 Nucleus有c ++ 11但无法构建boost::atomic

这迫使我考虑使用boost::atomicstd::atomic.我接近这个的方法是生成一个新类型,它将所有功能转发到atomic平台上的相关类型.这个想法是这样的:


Atomic.hpp

namespace osal { namespace detail {

template <typename T, template <class> class TAtomic >
struct AtomicImpl {

    void store(T desired, memory_order order = osal::memory_order_seq_cst) 
    {
        _atomic.store(desired, order);
    }

    // ... Other api

private:

    AtomicImpl& operator=(const AtomicImpl& rhs);
    // ... Other blocked operations
    TAtomic<T> _atomic;
};

}}


#if defined QNX
    #include <osal/QNX/Atomic.hpp>
#elif defined NUCLEUS
    #include <osal/NUCLEUS/Atomic.hpp>
#endif
Run Code Online (Sandbox Code Playgroud)

这将列出一个类,它将转发到atomic …

c++ multithreading boost thread-safety c++11

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