小编Kom*_*ner的帖子

如何检查可执行文件是否与已安装的.NET版本兼容

我是一名软件测试员.我得到了一个可执行文件来测试给定的机器.在测试中,可执行文件表现得很糟糕,任何人都无法解释.

经过大量的研究和调试后,我找到了原因:为.NET目标框架4.6构建的可执行文件,但该机器配备了.NET 4.5.这为"string.Format()"等简单的方法产生了一些"MissingMethodExeception".一些try-catch捕获了这些异常,但是以错误的方式处理它们,因为没有人预料到它们会发生.

这里也描述了同样的问题:

找不到方法:'System.String System.String.Format(System.IFormatProvider,System.String,System.Object)

我的问题:

  1. 当我尝试运行无法正常运行的可执行文件时,Windows是不是要警告我,因为必要的.NET版本不可用?
  2. 一般来说,处理这个问题的最佳做法是什么?

(我希望VisualStudio中有一个复选框"如果目标网络不可用则不执行"?!)

.net c# compatibility target

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

就硬件(总线)信号而言,术语“断言”是什么意思?

阅读硬件总线规范时,我经常遇到诸如:“当控制器看到已发出总线请求时,它会断言总线授予线到第一个设备。”

“断言”一词在这里究竟是什么意思?它像“激活”一样简单,还是还有更多?

hardware assert bus

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

C++:重载=运算符以创建uint8_t兼容数据类型

我认为这应该是微不足道的:

我写了一个类来处理二进制编码的十进制(BCD)8位值.
该类有像set(),get(),add(),sub()等的方法.完美的工作.
get()的示例:

class bcd8_t {
  public:
    uint8_t get() { return value_u8; }
  private: 
    uint8_t value_u8;
}; 
Run Code Online (Sandbox Code Playgroud)

现在我想将此类转换为新的数据类型.我基本上想要替换类似的东西

bcd8_t  a;  
uint8_t b = a.get();  
Run Code Online (Sandbox Code Playgroud)

通过类似的东西

bcd8_t  a;  
uint8_t b = (uint8_t)a;
Run Code Online (Sandbox Code Playgroud)

所以我希望我能写一个重载的"="运算符,它返回一个uint8_t,如:

class bcd8_t {
  public:
    uint8_t operator=() { return value_u8; }
  private: 
    uint8_t value_u8;
}; 
Run Code Online (Sandbox Code Playgroud)

然而,我曾经尝试过的编译器告诉我

cannot convert 'bcd8_t' to 'uint8_t'  
Run Code Online (Sandbox Code Playgroud)

要么

invalid cast from type 'bcd8_t' to type 'uint8_t'
Run Code Online (Sandbox Code Playgroud)

这该怎么做?

c++ types casting overloading

0
推荐指数
1
解决办法
356
查看次数

标签 统计

.net ×1

assert ×1

bus ×1

c# ×1

c++ ×1

casting ×1

compatibility ×1

hardware ×1

overloading ×1

target ×1

types ×1