VS 2017 调试c++ dll的两种方式

环境状况:dll采用c++编写,宿主exe程序采用c#编写,两者不在同一解决方案中

方法一:手动附加
1、编译debug模式dll,放到exe所在目录
2、启动exe(非vs调试模式)
3、在dll项目中选择 调试-附加到进程,选中对应的exe进程,调试代码类型选择:本机。执行到dll调用时即可进入代码调试
  注:可以在exe的main函数中加入一段sleep以等待被附加

方法二:自动附加
1、编译debug模式dll,放到exe所在目录
2、打开dll项目属性,调试-命令,输入exe的完整路径,命令参数中填入exe所需的参数(要确保选项“附加”为否)
3、在dll项目上点击右键-调试-启动新实例,即可自动启动exe并附加到此进程

用VC和MinGW导出dll的def和lib(a)文件

有了dll文件需要导出def文件:
In msys2:
pacman -S mingw-w64-i686-tools
gendef zlib1.dll
In MinGW:
pexports zlib1.dll > zlib1.def

有了dll和def文件,需要导出MinGW的.a文件:
dlltool --dllname zlib1.dll --def zlib1.def --output-lib libz.dll.a

有了dll和def文件,需要导出一个VC的lib文件:
lib /machine:i386 /def:zlib1.def

注意:
C++的dll不具有2进制级别的共享性,也就是说VC的MinGW的C++ dll不能混用。
而C的可以。
pexports和dlltool的MinGW的工具,lib是VC的工具。

树莓派更换中国大陆地区软件源(stretch)

查看自己的版本类型:
lsb_release -a

sudo nano /etc/apt/sources.list
将文件里的默认的官方软件源用# 注释掉
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

sudo nano /etc/apt/sources.list.d/raspi.list
将文件里的默认的官方软件源用# 注释掉
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi stretch main ui

sudo apt-get update
sudo apt-get upgrade

CentOS 7 VMware 联网

dhclient –v
ip addr


Add this in auto-startup
cd /etc/init.d

vi net-autostart
#!/bin/bash
# Solution for "No Internet Connection from VMware"
#
### BEGIN INIT INFO
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
dhclient -v


chmod 755 net-autostart
chkconfig --add net-autostart

restart vm to test

Linux下使用iptables禁止指定IP地址的网络连接

在Linux下,使用iptables来维护IP规则表。要封停或者是解封IP,其实就是在IP规则表添加规则。
要禁止指定IP地址的网络连接,可以使用以下两种方法来快速实现。

1.禁止特定IP的连接
要禁止一个IP,使用下面这条命令:
iptables -I INPUT -s ***.***.***.*** -j DROP
如果需要指定端口:
iptables -I INPUT -s ***.***.***.*** -ptcp --dport 22 -j DROP

要解封一个IP,使用下面这条命令:
iptables -D INPUT -s ***.***.***.*** -j DROP

参数-I是表示 Insert (添加),-D表示 Delete (删除)。后面跟的是规则, INPUT 表示入站,***.***.***.*** 表示要封停的IP, DROP 表示放弃连接。

service iptables save
service iptables restart

可以使用下面的命令来查看当前的IP规则表: 
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  120.120.120.36       anywhere                      

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

如果输出非常慢,可使用:
iptables -n -L
-n选项,主机和端口都以数字形式输出,不会去查询主机名(DNS查询是比较慢的)


2. 禁止IP段的网络连接
添加IP段到封停列表中: 
iptables -I INPUT -s 121.0.0.0/8 -j DROP

CentOS 7 SSH使用证书登录

客户端建立私钥和公钥
在客户端终端运行命令
ssh-keygen -t rsa


ssh服务端配置
vi /etc/ssh/sshd_config
# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no
# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys


把客户端的公钥添加到服务器的authorized_keys
vi ~/.ssh/id_rsa.pub
复制到服务器上的
/home/username/.ssh/authorized_keys
文件中


服务端重启sshd
systemctl restart sshd


客户端通过私钥登录ssh服务器
ssh -i ~/.ssh/id_rsa name@


每次敲命令,都要指定私钥,是一个很繁琐的事情,所以我们可以把私钥的路径加入ssh客户端的默认配置里
vi /etc/ssh/ssh_config
#其实默认id_rsa就已经加入私钥的路径了,这里只是示例而已
IdentityFile ~/.ssh/id_rsa
#如果有其他的私钥,还要再加入其他私钥的路径
IdentityFile ~/.ssh/blue_rsa

OnePlus 5T刷机

OnePlus 5T OxygenOS http://downloads.oneplus.net/
H2OS http://www.h2os.com/download

http://www.oneplusbbs.com/thread-3841246-1-13.html

第一步:打开手机设置-关于手机-连续点击版本号(5-7次)打开开发者选项
第二步:设置-开发者选项-打开OEM解锁、USB调试和高级重启选项

下载一加5T工具箱v1.5.3版 http://www.oneplusbbs.com/thread-3798911-1-1.html

启动工具箱
0 检查手机状态
16 启动设备到Fastboot模式

3 检查是否解锁
4 解锁手机(解除BootLoader锁)
手机按照提示选YES

9 刷写ROM或ZIP包(从USB安装升级文件)
拖入rom文件到5T工具箱
注意:ROM文件路径中不能出现中文

重启
!!!拷贝APP到手机!!!

6) 刷写第三方Recovery(TWRP)
自带的twrp-3.2.1-0

8) 刷写自选Recovery
拖入twrp-3.2.1-1-dumpling.img文件到5T工具箱
注意:ROM文件路径中不能出现中文

刷入氧OS:
重启设备到Recovery模式
如果您是第三方TWRP Recovery,刷写任意ROM或ZIP包(ROOT权限包等),请依次点击”Advanced”(高级) ADB Sideload,并滑动 显示”正在启动adb sideload”即为启动成功

音量键加 + 电源键,进入FastBoot模式
8) 刷写自选Recovery
拖入twrp-3.2.1-1-dumpling.img文件到5T工具箱
注意:ROM文件路径中不能出现中文

进入twrp
刷入SuperSU
重启

打开SuperSU

设置 – 按键 – 切换按钮
Home键长按操作:关闭屏幕

Nexus 6P刷机

下载:
https://dl.twrp.me/angler/
http://www.supersuer.com/
http://repo.xposed.info/module/de.robv.android.xposed.installer

刷入系统:
flash-all.bat

启动并按提示设置完毕

刷入twrp:
fastboot flash recovery twrp-3.2.1-0-angler.img
再执行一次:
fastboot flash recovery twrp-3.2.1-0-angler.img

开机
拷贝SuperSU-v2.82-201705271822.zip到SD卡

重启手机进入recovery
刷入SuperSU

去除网络连接感叹号:
adb shell settings put global captive_portal_mode 0

安装XposedInstaller_3.1.4.apk

VS2015 vcpkgsrv.exe进程CPU占用高的解决方法

是 VC 智能感知问题,可以禁了。
方法是: 菜单: 工具 -》 选项 -》 文本编辑器 -》 C++ -》 高级
右边 Intellisense false 改为 Ture
注意:此设置会导致无法使用代码高亮与智能提示

其他减少VS的CPU占用率的方法:
工具 -》 选项 -》 搜索codelens, 将 启用 取消勾选,重启VS
工具 -》 选项 -》 源代码管理 -》 当前源代码管理插件:无