编码日记
编码日记
luckyone906
这个作者很懒,什么都没留下…
展开
-
qt中连接sqlite数据库提示QSQLITE driver not loaded解决办法(重要)
qt原创 2022-11-12 15:19:13 · 5859 阅读 · 0 评论 -
C++程序开启大地址(虚拟内存),让32位程序使用4G内存的方法,虚拟内存概念及寻址范围详解
c++原创 2022-11-11 19:04:58 · 5686 阅读 · 1 评论 -
问题笔记0
c++原创 2022-11-11 20:37:05 · 122 阅读 · 0 评论 -
C# 捕获系统闪退BUG
在程序入口添加代码namespace MainForm{ static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventA...原创 2021-03-02 19:57:19 · 1669 阅读 · 0 评论 -
winform程序最大化时,页面显示不全的问题
最后贴上引起这个原因的代码,但是这段代码不能去掉,我要用,这段代码可以解决页面切换时的闪烁问题。如果去掉这段代码,确实可以完整显示窗口,但是闪烁太严重了。最大化后,试试让窗体强制重绘一下。是不是win10的字体设置不是100%?确实越简单越好,我删掉了一些。而且最好不要用panel,去掉panel就能减少闪烁。WM_NCCALCSIZE刷新一下。WndProc加一个判断试试:C# code? 1 2 3 4 caseWM..原创 2021-03-01 18:31:23 · 4217 阅读 · 0 评论 -
c#子线程中打开系统文件操作对话框
出错环境:多线程接收文件的时候,需要打开一个SaveFileDialog对象,并调用ShowDialog()方法出错代码:[html]view plaincopyvoidthreadProc() { ... SaveFileDialogsaveFileDlg=newSaveFileDialog(); if(saveFileDlg.ShowDialog()!=DialogResult.OK) { ...原创 2021-02-28 15:57:03 · 524 阅读 · 0 评论 -
计算机代码内大数据内存堆栈溢出问题
1.因为不管是c++还是c#,他们的对象内存都是在堆栈中分配的,加入堆栈中有2G空闲空间,但是这2G的空间不是连续的,也就是说最大的一块可供缓存数据的内存空间是这2G空间里最大的一片连续内存,当2G空间里最大的连续内存是50M,而需要缓存数据的某个内存不断增加数据超过了50M时就是内存溢出了,这个需要遵循软件设计规则,否则系统会崩溃。2.应用程序可以访问 2 GB 的进程地址空间,称为用户模式虚拟地址空间...原创 2021-02-23 18:52:17 · 294 阅读 · 0 评论 -
每个Form类都实现了IWin32Window接口!
每个Form类都实现了IWin32Window接口!Form.Show(IWin32Window)在From1的cs文件中实例化Form2,myForm2.Show(this)就可以弹出非模态的窗体,而且form2是Form1的子窗体.但是如果我在另外一个cs文件中调用myForm2.Show(myForm1)方法,传进去的参数是Form1的实例,所以这样的没有达到上面的效果例如:public static DialogResult Show(IWin32Window owner...原创 2021-02-05 23:49:59 · 1279 阅读 · 0 评论 -
c#中设计器中窗体释放 protected override void Dispose(bool disposing)改写解决部分窗体线程释放不彻底问题
c#中设计器中窗体释放 protected override void Dispose(bool disposing)改写解决部分窗体线程释放不彻底问题/// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected...原创 2021-02-04 22:28:19 · 2942 阅读 · 0 评论 -
winform中UI设计分辨率问题
1.UI设计可以自适应或固定分辨率,自适应需要手动写调整控件尺寸位置代码;固定分辨率需要固定尺寸的UI资源图片(如背景图片)和固定的终端分辨率(如pc端不一致需调整分辨率为初始设计的分辨率)。...原创 2021-01-21 21:48:59 · 534 阅读 · 0 评论 -
C#中的线程池使用方法
1 线程池的概念许多应用程序使用多个线程,但这些线程经常在休眠状态中耗费大量的时间来等待事件发生。其他线程可能进入休眠状态,并且仅定期被唤醒以轮询更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每一个进程提供了一个线程池,使应用程序能够根据需要来有效地利用多个线程。一个线程监视排到线程池的若干个等待操作的状态。当一个等待操作完成时,线程池中的一个辅助线程就会执行对应的回调函数。线程池中的线程由系统进行管理,程序员不需要费力于线程管理,可以集中精力处理应用程序任务。.原创 2020-12-29 20:35:43 · 7379 阅读 · 0 评论 -
c# 中ToolStrip控件中button控件,显示文字和图标
1.同时显示文字和图标DisplayStyle 属性设为 ImageAndText(DisplayStyle属性用来设置图标的显示状态为 图片、文字、图片和文字 )ImageRelation 属性设为 ImageBeforeText( TextImageRelation属性 设置文字和图片的位置关系)ImageAlign 属性更改图片位置TextAlign 属性更改文字位置image属性:设置按钮图标Text属性: 设置显示的文字2.只显示文...原创 2020-12-28 21:55:09 · 3963 阅读 · 0 评论 -
winform窗体控件多,加载慢、卡顿的解决办法
protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // 用双缓冲绘制窗口的所有子控件 return cp; } }将此方法放在需要优化的窗体代码中即可。如下图:...原创 2020-12-28 21:33:18 · 6276 阅读 · 4 评论 -
C#实现最小二乘法
根据http://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95里面的说法:线性函数模型典型的一类函数模型是线性函数模型。最简单的线性式是,写成矩阵式,为直接给出该式的参数解:和其中,为t值的算术平均值。也可解得如下形式:b1为斜率,b0为截距,可以先根据x,y数组,以及上面的公式先计算出斜率,再计算截距。因为原来参考代码中,返回为一个数组,根据与原来代码的...原创 2020-12-25 22:45:03 · 2258 阅读 · 0 评论 -
C# 获取进程或线程的信息
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;namespace ConsoleApp{ class ProcessDo { /// <summary> /// 获取进程相关信息 /// </summary> ...原创 2020-11-10 22:47:26 · 3662 阅读 · 0 评论 -
c++ (QT)笔记
1.标准情况下,c++中的类声明都在头文件中,实现在.cpp文件中,所以只在.cpp中实现类的函数在头文件中没有声明会报错。c++的函数实现和声明都可放在头文件中这样.cpp文件也可访问到,但是不能都放在.cpp文件中,否则就得包含此.cpp文件才行,具体原理课研究编译原理中的链接原理。...原创 2020-08-16 11:16:58 · 770 阅读 · 0 评论 -
qt中设置窗体大小
在我们的编程中,我们有时候会想让我们的程序窗体固定大小,而该大小是我们在编辑时的大小。经过我的摸索,和查阅资料。找到了一个方法。其实也很简单。其实也就是先找到该窗体的物理大小。然后设置固定窗体的大小即可,核心代码如下:loginDialog::loginDialog(QWidget*parent): QDialog(parent), ui(new Ui::loginDialog) { ui->setupUi(this); intwidth...原创 2020-08-16 11:10:40 · 15024 阅读 · 0 评论 -
C#中模态对话框释放问题
以下实例中可以测出,当一个模态对话框返回DialogResult的结果后, 对话框自动隐藏,但对话框db并没有彻底释放掉,因此仍可以访问db中的成员,想要彻底释放需要手动加上db.close()/delete释放语句private void button2_Click(object sender, EventArgs e) { DialogBox db = new DialogBox(); if(db.ShowDialog()==Dia...原创 2020-08-16 11:17:21 · 470 阅读 · 0 评论 -
C#操作注册表方法
1:要操作注册表,我们必须要引入必要的命名空间:using Microsoft.Win32;在这个命名空间里面包含了许多注册表相关的类,足够我们使用了~~2:命名空间里面提供了一个类:RegistryKey利用它我们可以定位到注册表最开头的分支:ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig如:RegistryKey key = Registry.LocalMachine;3:在操作的过程中涉及到子分支,要用\\进行深入,单个..原创 2020-08-15 12:29:13 · 1249 阅读 · 0 评论 -
C#使用DataContractJsonSerializer来进行JSON解析
在使用DataContractJsonSerializer进行解析之前,我们首先需要将两个包引入进来:using System.Runtime.Serialization;using System.Runtime.Serialization.Json;接下来需要新建一个class,DataContractJsonSerializer可以将JSON字符串转化为指定的class或者将class转化为JSON字符串。这次我接受的JSON数据格式为:{ "ret": "0", "Isupdate"原创 2020-07-14 22:00:46 · 3759 阅读 · 0 评论 -
C#中JSON和对象之间互相转换功能示例
本文实例讲述了C#实现JSON和对象之间互相转换功能。分享给大家供大家参考,具体如下:1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属性,Order表示 解析的顺序,另外Lover是数组列表,表示女朋友个数Address 表示送货地址,DailyRecord 表示日常记录using System;using System.Collections.Generic;using System.Linq;using System..转载 2020-07-14 21:53:35 · 786 阅读 · 1 评论 -
C# 重写WndProc 消息循环
重写WndProc方法来处理 Windows 消息处理 Windows 消息。在开发winForm时,常常要处理Windows消息,可以重写WndProc来实现。常见代码如下:using System;using System.Drawing;using System.Windows.Forms;namespace csTempWindowsApplication1{public class Form1 : System.Windows.Forms.Form{// Constant原创 2020-07-14 21:48:03 · 1894 阅读 · 0 评论 -
WinForm 布局控件“WeifenLuo.WinFormsUI.Docking“的使用
本篇介绍Winform程序开发中的布局界面的设计,介绍如何在我的共享软件中使用布局控件"WeifenLuo.WinFormsUI.Docking"。布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大、美观、不亚于商业控件。而且控件使用也是比较简单的。先看看控件使用的程序界面展示效果。配电网络可视化管理系统的界面截图:深田之星送水管理系统网络版的界面截图:我在几个共享软件都使用了该布局控件,我们先以“深田之星送水原创 2020-07-14 21:43:40 · 3011 阅读 · 0 评论 -
让使用SQLite的.NET应用自适应32位/64位系统
如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”。但是如果应用中使用了SQLite,情况就不同了。 SQLite的.NET开发包来自是System.Data.SQLite,完成兼容ADO.NET接口,也提供了Linq和Entity Framework 6实现。但这不重要,重要的是System.Data.SQLite是由两部分代码组成的,一部分是非托管的C++代码实现,一部分是托管代码与.NET框架接口。由于非托管代码不能构建成“Any CPU”.原创 2020-07-02 21:46:32 · 1249 阅读 · 0 评论 -
C#JSON与XML相互转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using Newtonsoft.Json; namespace JSonConverter { class Program { static void Main(string[] a...原创 2020-07-02 21:14:00 · 2445 阅读 · 0 评论 -
C# SQLite 数据库操作语句与文件视图管理器
C# SQLite数据库操作学习运行环境:Window7 64bit,.NetFramework4.61,C# 7.0参考:SQLite 官网 SQL As Understood By SQLite System.Data.SQLite 菜鸟教程 SQL 教程章节:1、下载安装 2、数据类型 3、创建数据库 4、删除数据库 5、创建表 6、删除表 7、查询表结构 8、更改表名 9、增加列(字段) 10、读取创建表的 SQL 语句 11、更改列名 12、删除列.原创 2020-07-02 21:11:47 · 1125 阅读 · 0 评论 -
C#使用SafeNet的开发狗和超级狗加密使用方法
1.在安装光盘中选择Windows文件夹,单击Setup.exe执行安装程序,安装过程默认选择,单击下一步即可。2.安装完毕后插入超级狗,在菜单栏中打开“超级狗开发商向导”,选择下载API,然后默认选择下一步,下载完成后会提示下载全部成功,此时超级狗中需要导入的资源文件都已成功完成,并且在c盘指定安装路径下生成了新的hvc文件(VendorCodes文件夹中)、dog_windows_xxxxx.dll和dog_windows_x64_xxxxx.dll文件(xxxxx为随机数字,Tools/make原创 2020-06-30 21:40:31 · 5910 阅读 · 1 评论 -
C#中修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限
写在前面在windows系统中,c盘中的目录权限比较高,有时制作安装包的时候,默认的安装路径就是在c盘,但对运行可执行文件,有时候需要为其添加完全控制权限,或者读写权限。这里将当时的解决方案记录一下。代码实现在C盘添加一个文件夹,并在文件夹内部,新建一个文本文件,如图所示:该文件夹下,新建一个文本文件,如图所示:为文件添加完全控制权限: /// <summary> /// 为文件添加users,everyone用户组的完全控制权原创 2020-06-30 21:38:24 · 2037 阅读 · 1 评论 -
C#中使用MD5对用户密码加密与解密
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式。本文总结了通用的算法并结合了自己的一点小经验,分享给大家。一.使用16位、32位、64位MD5方法对用户名加密1)16位的MD5加密/// <summary>/// 16位MD5加密/// </summary>/// <param name="password"></param>/// <returns></returns>.原创 2020-06-30 21:35:47 · 14692 阅读 · 0 评论 -
c#中英文切换实例
1.创建两个资源文件Resource.en-US.resx Resource.zh-CN.resx 注意中间部分每种语言文件名固定,后缀名是.resx,首部分是自定义的名字2.创建读写工具类上面两个资源文件都是在Utility项目集中注意:ResourceManager rm = new ResourceManager("Utility.Resource", Assembly.GetExecutingAssembly());的调用就要以命名空间+资源文件首部名的形式。...原创 2020-06-16 22:51:15 · 3652 阅读 · 0 评论 -
c#中中读取嵌入和使用资源文件的方法
Dotnet中嵌入资源(位图、图标或光标等)有两种方式,一是直接把资源文件加入到项目,作为嵌入资源,在代码中通过Assembly的GetManifestResourceStream方法获取资源的Stream。另一种方法是在项目中加入. resx资源文件,在资源文件中添加资源,由ResourceManager类统一管理其中的资源。下面分别详述这两种方法一、使用GetManifestResourceStream读取嵌入资源1、加入资源文件直接把要嵌入到程序集的资源文件加入到项目中,可以加在项目的原创 2020-06-16 22:40:16 · 8147 阅读 · 3 评论 -
C#的Winform多语言实现(resx文件)
使用resx文件实现Winform多语言切换,本博文提供的代码可以实现简体中文、繁体中文、英文的切换。如果需要增加其它语言的切换,只需要编写相应的语言的resx文件即可。 并且,当修改了语言之后,会更新所有打开的窗口。先贴几张图展示一下效果。程序下载:点击打开链接http://download.csdn.net/detail/softimite_zifeng/97315751. 简体中文2. 繁体中文3. 英文下面子丰介绍一下实现的过程:1. 为每个窗口创建相应语言的resx文.原创 2020-06-16 22:08:18 · 2127 阅读 · 1 评论 -
C# -WinForm 中英文实现, 国际化实现的简单方法
来源:http://www.jb51.net/article/45675.htm,今天看到了借鉴过了,保存一下,下次开发直接用嘻嘻软件行业发展到今天,国际化问题一直都占据非常重要的位置,而且应该越来越被重视。对于开发人员而言,在编写程序之前,国际化问题是首先要考虑的一个问题,也许有时候这个问题已经在设计者的考虑范围之内,但终归要开发人员去做实现的。因此,如何实现国际化,是开发人员必须掌握的一项基本技能。今天,这里要讲的就是,在利用C#进行WinForm开发时,国际化是怎么实现的。鉴于时间及篇幅关系,这原创 2020-06-16 20:26:09 · 1856 阅读 · 1 评论 -
C# override详解
重载、重写、覆写,分别指的是overload、override、new。一、override重写,是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同。用于扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现。提供从基类继承的成员的新实现,而通过override声明重写的方法称为基方法。注意事项:1.重写基方法必须具有与override方法相同的签名。2.override声明不能更改virtual方法的可访问性,且override方法与virtual方法必须具有相同级别原创 2020-06-14 20:27:15 · 16512 阅读 · 0 评论 -
C#完美实现透明窗体的绘制效果
为了实现透明窗体的绘制,最开始是采用了双层窗体的模式。思路:将form1的属性transparencyKey设置为背景色,将form2的opicaty设置的很低,比如0.05,保证鼠标不会穿透!让后将使用form1创建的绘制对象(form1.CreateGraphics),去绘制即可!后面方面使用单层窗体也可实现透明绘制,主要是设置窗体背景色需要注意!在设置背景色的后,颜色的R值不能等于B值,这样就可事件即透明又不会鼠标穿透的效果!例如这样设置:this.BackColor = Color.原创 2020-06-14 20:25:24 · 1522 阅读 · 0 评论 -
c#获取控件指定坐标的像素值
[DllImport("gdi32.dll")] private static extern uint GetPixel(IntPtr hDC, int XPos, int YPos); Graphics g = control.CreateGraphics(); uint colorref = GetPixel(g.GetHdc(), center.X + convolution[i, j].X, center.Y + convolution.原创 2020-06-14 20:22:15 · 1470 阅读 · 0 评论 -
C# 中Bitmap图像处理含增强对比度的三种方法
Bitmap类Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下:1. GetPixel方法和SetPixel方法:获取和设置一个图像的指定像素的颜色.2. PixelFormat属性:返回图像的像素格式.3. Palette属性:获取和设置图像所使用的颜色调色板.4. Height Width属性:返回图像的高度和宽度.5. LockBits方法和UnlockBits方法:分别锁原创 2020-06-14 20:18:30 · 1205 阅读 · 0 评论 -
c#中实现图像图像卷积与滤波-高斯平滑
使用C#语言编写高斯平滑。一、线性滤波与卷积的基本概念2D卷积需要4个嵌套循环4-double loop,所以它并不快,除非我们使用很小的卷积核。这里一般使用3×3或者5×5。而且,对于滤波器,也有一定的规则要求:1)滤波器的大小应该是奇数,这样它才有一个中心,例如3×3,5×5或者7×7。有中心了,也有了半径的称呼,例如5×5大小的核的半径就是2。2)滤波器矩阵所有的元素之和应该要等于1,这是为了保证滤波前后图像的亮度保持不变。当然了,这不是硬性要求了。3)如果滤波器矩阵所有元素之和大于原创 2020-06-14 20:16:28 · 1941 阅读 · 0 评论 -
c# gdi设置画刷透明
使用solidBrush新建画刷,定义画刷的颜色为透明色Brush b = new SolidBrush(Color.FromArgb(50, Color.Green));这里的50是透明度的设置,范围从0-255;0:无颜色 255:不透明原创 2020-06-14 20:15:05 · 613 阅读 · 0 评论 -
C#-文件只读时进行拷贝或删除报错, 对路径不允许访问
文件只读时进行拷贝报错,解决方法如下:设置文件属性为正常 然后在进行拷贝/// <summary> /// 拷贝文件夹 /// </summary> /// <param name="sourceDirectory"></param> /// <param name="targetDirectory"></param> public static b...原创 2020-05-17 22:51:33 · 1180 阅读 · 0 评论