重新安装 NuGet 包

有时候打开项目,发现 NuGet 包全部丢失了,点击还原 NuGet 包也没有任何作用。

这时我们可以点击工具->NuGet 包管理器->程序包管理控制台打开控制台,在里面输入以下命令重新安装解决方案的 NuGet 包。

Update-Package -Reinstall

也可以只重新安装某一项目的 NuGet 包。

Update-Package -ProjectName "DemoProject" -Reinstall

DXERR.LIB

**VS 2015 / 2017:**The VS 2015 / 2017 C Runtime is not compatible with theDXERR.LIBthat ships in the legacy DirectX SDK. You will get link errors trying to use it. You can use this module to replace DXERR LIB but will have to rebuild the code that uses it. You can try linking withlegacy_stdio_definitions.libinstead, but ideally you’d remove this dependency on the legacy DirectX SDK.

环形缓冲区(Ring Buffer),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。

环形缓冲区的一个有用特性是:当一个数据元素被用掉后,其余数据元素不需要移动其存储位置。换句话说,环形缓冲区适合实现先进先出缓冲区。

由于计算机内存是线性地址空间,因此环形缓冲区需要特别的设计才可以从逻辑上实现。
一般的,环形缓冲区需要4个指针:

  • 在内存中实际开始位置;
  • 在内存中实际结束位置,也可以用缓冲区长度代替;
  • 存储在缓冲区中的有效数据的开始位置(读指针);
  • 存储在缓冲区中的有效数据的结尾位置(写指针)。

缓冲区是满、或是空,都有可能出现读指针与写指针指向同一位置,有多种策略用于检测缓冲区是满、或是空:

  • 总是保持一个存储单元为空
  • 使用数据计数
  • 镜像指示位
  • 读/写 计数
  • 记录最后的操作
阅读全文 »

自己开发的程序遇到过几次 Runtime Error,用 Visual Studio 调试也完全无法捕获错误,一直以为是运行库有问题,后来发现程序里进行了错误的类型转换也可能会引起这个问题。

阅读全文 »

禁用Ubuntu 16.04 的访客模式,只需要修改配置文件 /etc/lightdm/lightdm.conf.d/50-guest-wrapper.conf

sudo nano /etc/lightdm/lightdm.conf.d/50-guest-wrapper.conf

在文件中添加以下内容即可。

[Seat:*]
allow-guest=false

如果直接通过设置 proxy_pass 转发,会发现原来的域名会丢失,取代出现的是目标地址的 IP 。

server {
    listen 80;

    location / {
        proxy_pass http://127.0.0.1:4356;
    }
}

解决方法是设置 proxy_set_header . 具体如下:

server {
    listen 80;

    # this is the key !!!
    proxy_set_header Host $host:$server_port;

    location / {
        proxy_pass http://127.0.0.1:4356;
    }
}