- 博客(36)
- 资源 (9)
- 收藏
- 关注
原创 WIN10 系统 C# DllImport 导入 C++ 动态库抛出 System.DllNotFoundException 问题分析与处理方法。
近期,在工作遇到一个比较奇怪的问题。即,使用 C# DllImport 导入 C++ 库会抛出 System.DllNotFoundException 异常。开发环境: WIN7 + VS2010 C#测试环境: WIN10问题描述:1. WIN7/ WIN10 上使用 MFC 开发的软件,使用 LoadLibrary 调用此 C++ 库无异常。2.WIN10 上使用 C# 开发的软件,使用 DllImport 导入 C++ 库会抛出 System.DllNotFoundE...
2021-05-22 19:53:46
1361
原创 Python3.7.3 + Pycharm2019.1.1 + PyQt5 环境搭建详解!
因工作需要,参考作者(村长的麦田)文章,发布博文一篇,以防遗忘。搭建环境:操作系统:Win7 64bitPython版本:3.7.3Pycharm:社区免费版一、Python3.7安装下载链接:官网https://www.python.org/downloads/windows/下载到安装包后打开,如果想安装到默认路径(C盘)的话一直点下一步就可以了,或者自定义安装到其...
2020-01-09 15:09:30
1379
2
原创 Q_OBJECT 导致 error: undefined reference to `vtable for XXXX' 错误
在 Qt 编译环境下,自定义类继承 Qt 类时,程序报错 error: undefined reference to `vtable for XXXX'。这个错误看起来是虚函数表无法引用到,也就是继承 Qt 类失败了。 解决方案:删除编译文件夹,重新 rebuild 工程。 出于对 Q_OBJECT 宏的好奇,大致读了下 Qt 帮助文档对 Q_OBJEC...
2018-03-12 18:22:39
4126
原创 QT 基础知识及程序打包发布
一、Qt 中如何使用纯代码编写(使用 Empty qmake Project)程序? 一般来说,我们可以使用 Empty qmake Project 来创建一个纯空的工程,对于 Empty qmake Project 的解释,Qt 说明如下:Creates a qmake-based project without any files. This allow
2017-11-25 16:07:02
431
原创 Cpp标准库之 std::regex 类的使用
本文主要是大致的介绍如何使用 C++ 标准库中 std::regex 相关类库,用来打发下无聊的时间。
2017-10-14 16:52:52
39940
3
原创 QT之信号槽(一)
学习一门语言最好的方式就是看文档。本文翻译与 Qt 帮助文档:Signals & Slots 信号和槽被用于两个对象之间的通讯。信号槽机制
2017-09-19 22:01:04
841
原创 QT之使用 QWaitCondition 同步线程小例子
接上一篇,本篇文章主要将介绍如何使用 QWaitCondition 来同步线程。 学习 QWaitCondition 类之间,先研读下 Qt 文档对 QwaitCondition 的具体描述及介绍,大意如下: QWaitCondition 类提供了一个条件变量用于同步线程。 QWaitCondition 允许一个线程告诉其他线程某些条件已被满足
2017-09-18 09:38:00
1840
原创 QT之使用QSemaphore信号量同步线程小例子
接上一篇,本篇文章主要将介绍如何使用 QSemaphore 信号量来同步线程,以及两条线程间数据传递。 首先,要理解信号量,它可以理解为对互斥量功能的扩展,一般来说,互斥量只能锁定一次而信号量可以获取多次,信号量典型是用来保护一定数量的同种资源。具体可以查看 Qt 文档。 其次,要清楚线程中信号量运行过程,大致为: Step1. 生产者线程使用信号量
2017-09-16 16:50:45
1786
原创 QT之使用QReadWriteLocker互斥量同步线程小例子
接上一篇,在多线程中基本上都需要解决线程同步问题,本篇文章主要将介绍如何使用QReadWriteLocker互斥量来同步线程。同时,也按照Qt中介绍的另外一种方式来使用多线程,即继承QThread的方式来使用多线程。 这个例子主要目的是:使用两条线程分别读写变量。源代码如下:【读线程 .h】#ifndef READERTHREAD_H#define READERTHRE
2017-09-16 11:44:29
2453
原创 QT之使用QMutex/ QMutexLocker互斥量同步线程小例子
接上一篇,在多线程中基本上都需要解决线程同步问题,本篇文章主要将介绍如何使用QMutex/ QMutexLocker互斥量来同步线程。 直接上售票的小例子: Step1.
2017-09-15 19:49:26
7153
1
转载 QT 中如何正确使用QThread
QThread看似类似于C++11的std::thread,实则大不相同。std::thread可以运行一个用户指定的函数;可以说比较的底层。而QThread则根本没有给出任何接口让你有机会指定你想运行的函数,因为它根本就不是为了运行用户指定的函数而生的,而是作为一个线程管理者,而很奇怪的是,这个管理者并不让你有机会指定你想运行的函数。也许有人说,继承QThread,然后重载run()函数,这不就
2017-09-14 15:33:51
17288
3
原创 Qt学习之《C++ GUI Qt4编程》(第14章)多线程互斥量使用错误
虽然一直使用VC,但很久之前有使用过Qt写过一些小工具,但没有完整看过Qt一些相关书籍,最近看书发现《C++ GUI Qt4编程》(第14章)多线程互斥量使用好像有问题。 《C++ GUI Qt4编程》(第14章)14.2 这一节将QMutex定义在了 Thread 类下,编译调试书本中的例子,发现使用QMutex Lock()方法会报错: The infer
2017-09-14 11:18:48
475
原创 VS2010配置DirectX 11
一、前言 因项目需要,需要枚举电脑上所有摄像头。查阅资料,发现使用 DirectX 技术可以枚举电脑上的摄像头。 但是,使用 DirectX 技术前需要安装 DirectX SDK 并配置 IDE VS2010二、配置步骤 1.先至微软官网下载 DirectX 11.0,地址: 点击打开链接
2017-03-28 16:14:24
560
原创 Wireshark之网络通信原理(三)
四、网络硬件部分 A.集线器 一台集线器无非就是工作在OSI参考模型物理层上的转发设备。它从一个端口接受到数据包,然后将数据包传输(中继)到设备的其他每个端口上。例如,如果一台计算机连接到一个4端口集线器的1号端口上,需要发送数据到连接在2号端口的计算机,那么集线器将会把数据发送给端口1、2、3、4。连接在3号端口与4号端口上的客户端计算机通过检查以
2017-03-19 12:05:51
657
原创 Wireshark之网络通信原理(二)
一、数据流经OSI参考模型 先考虑一个问题:网络数据是如何流经OSI参考模型的各个层次呢? 在网络上传输的初始数据首先在传输网络的应用层开始,沿着OSI参考模型的七层逐层向下,直到物理层。在物理层上,传输系统将数据发送到接受系统。接受系统从它的物理层获取传输数据,然后向上逐层处理,直到最高的应用层。 在OSI参考模型任意层次上由不同协议
2017-03-19 11:25:29
486
原创 VC 如何读取第三方软件ListView控件(外挂篇之一)
一、VC 如何读取第三方软件ListView控件 写下这篇文章前,我想先对我的导师崔Sir说声:感谢!因为没有他的指导,其中一个Bug我是很难解决的。 因项目需要,需要开发外挂对第三方软件进行操作并获取ListView控件内的内容。 一般来说,要解决此问题大家肯定跟我初始想法一样,直接发送 LVM_GETITEM 消息给第三方软件ListV
2017-03-16 10:16:29
1883
1
原创 Wireshark之网络通信原理(一)
一、协议 现代网络是由多种运行在不同平台上的异构系统组成。为了使它们之间能够互相通信,我们使用了一套共同的网络语言,并称之为协议。常见的网络协议包括传输控制协议(TCP)、互联网协议(IP)、地址解析协议(ARP)、动态主机配置协议(DHCP)。协议栈是一组协同工作的网络协议的逻辑组合。 理解网络协议的最佳途径之一是将它们想象成人类口头或书面语言的使用规则。网络
2017-03-11 19:35:21
1367
原创 Wireshark之数据包嗅探器工作原理
数据包嗅探过程中涉及到软件与硬件之间的协作。这个过程可以分为3个步骤: 第一步: 收集 数据包嗅探器从网络线缆上收集原始二进制数据。通常情况下,通过将选定的网卡设置成混杂模式来完成抓包。在这种模式下,网卡将抓取一个网段上所有的网络通信流量,而不仅是发往它的数据包。 第二步: 转换 将捕获的二进制数据转换成可读形式。高级的命令行
2017-03-11 19:17:02
4486
转载 【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置
目录(?)[-]因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总结自己所学也分享知识给大家还是先放出待会儿的测试用图下载和安装OpenCV SDKsources里面是源代码想查看完整的源代码需要用cmake来解包如何解包大家百度一下就可以或者下次浅墨来
2017-02-25 21:15:31
517
转载 VS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入
C++ GUI 绘图控件目录MFCVS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入VS2010 使用TeeChart绘图控件 - 之二 - 绘制图形(折线图,柱状图)TeeChart绘图控件 - 之三 - 提高绘图的效率MFC下好用的高速绘图控件-(Hight-Speed Charting)绘制动态曲线Qtqt超强精美绘图控件 - Q
2017-02-24 15:47:15
3131
转载 C# 控件Anchor和Dock的区别
Anchor的英文意思是锚定。表示在窗体重置时控件与窗体(或者父控件)的相对位置保持不变。控件变化要等到窗体重置的时候才能呈现。窗体重置前窗体重置后关键字:相对位置不变Dock则是停泊的意思,表示控件的某个边与窗体重合(零距离)
2017-02-17 18:04:27
2416
转载 Qt Creator下载和安装(详细教程)
简介Qt是跨平台的图形开发库,目前由Digia全资子公司 Qt Company 独立运营,官方网址: http://www.qt.io/ 也可以访问Qt项目域名:http://qt-project.org/ Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。 基于
2017-02-17 12:37:37
6958
原创 C++ STL 序列性容器之 std::deque 容器
deque 是 double-ended deque 的缩写。它是一种动态数组形式,可以向两端发展,因此不论在尾部或头部插入元素,都十分迅速。
2016-12-13 14:58:53
1046
原创 C++ STL 序列性容器之 std::vector 容器
vector,一种随机访问的数组类型,它提供了对数组元素的快速、随机访问,以及在序列尾部快速、随机的插入和删除操作。当然,它也支持在序列中的其他地方插入和删除元素,但是这时效率会有所降低,这是因为 vector 对象必须移动对象位置以容纳新的元素或要收回被删除元素的空间
2016-12-07 09:47:22
800
转载 DLL入口点函数DllMain
每个DLL都可以有一个入口点函数DllMain,系统会在不同的时刻调用此函数。以下是DllMain的一般形式:BOOL WINAPI DllMain( HINSTANCE hinstDLL, // handle to DLL module DWORD fdwReason, // reason for calling function LPVOID lpR
2016-11-18 18:14:35
935
转载 VISUAL SVN安装 及客户端使用
1.为什么要用VisualSVN Server,而不用Subversion?回答:因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN S
2016-11-01 12:22:59
553
原创 <fstream> 操作文本文件简介
今天在使用std::fstream操作文件时,与到一个问题seek(std::ios::end)与seekg(0, std::ios::end)的差异。虽然查阅各种资料,然而还是无解,希望有深入理解C++标准高手指点一二。 废话少说,先看如下代码void CExceptionManager::ExceptionRecord(const std::string& text)
2016-10-31 17:31:37
612
原创 使用VS2010打包软件详解!
使用VS2010下Visual Studio Installer工程进行软件安装包制作 软件在功能开发实现后,其实并没有真正的完成。对于一个专业的开发者来说,Release软件应该是以安装版本的形式进行发布的,这篇文章将具体介绍如何使用VS2010下Visual Studio Installer进行打包软件。Setp1.首先建立Visual Studio
2016-10-10 19:32:57
6852
1
转载 字符编码 ASCII/ UNICODE/ Multi-Byte (二)
编码我们大致可以分为两类:文件编码和内存编码。 文件编码: 源代码文件的编码,gbk,UTF-8等。 内存编码: 源代码编译成为二进制文件的时候采用的编码。 在此我要说的是内存编码;内存编码在VC中只有3个选项:Not Set,Use Multi-Byte Character Set和Use Unicode Character Set。 1)multi-by
2016-10-02 11:38:17
658
转载 字符编码 ASCII/ UNICODE/ Multi-Byte (一)
1.ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语
2016-10-02 11:05:36
554
原创 VS2010 本地MSDN的安装!
VS2010被破坏后,可以重新修复或安装。虽然,可以重新修复安装VS2010,但是,本地MSDN却很可能安装不了或使用不了,譬如:报错404。 这篇文章主要是介绍本地MSDN的重新安装,主要是供有需要的人参考,具体步骤如下: Step1.打开C:\Program Files\Microsoft Help Viewer\v1.0\HelpLibManager.ex
2016-09-23 16:29:01
4636
原创 Net Framework4.0安装失败解决之道
这两天电脑不知道怎么回事,安装的VS2010/ Labwindows2013的编译器总是用着用着就打不开了。开始以为是360搞的鬼,后来,把启动360关闭并重装VS2010了,可是用着用着编译器又运行不了了。 后来想到可能是电脑病毒导致的,经过痛定思痛,使用360进行了全盘杀毒,竟然杀出了1K+的病毒。 看来,U盘还是不能乱插的。杀完毒之后,重装VS2010
2016-09-12 08:52:00
7851
1
原创 C++基础之宏的使用
在C/C++中经常可以看到各种宏,现对宏的妙用做一些使用总结。一、防止头文件的重复包含:#ifndef __XXXX_H__#define __XXXX_H__......#endif
2016-05-15 11:43:37
390
C# 基于 AES 加密 License 类源码及授权工具!
2023-09-01
KB983246-X64
2018-08-04
.Net Framework完全卸载工具
2016-09-12
C++ 自编MSXML操作类
2015-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人