C C++
文章平均质量分 82
PPL1998
这个作者很懒,什么都没留下…
展开
-
CLion 配置 Qt 开发环境
CLion版本:2023.3.4版本:3.27.7Qt6版本:6.6.2(MinGW 11.2.0 64-bit)转载 2024-07-17 10:33:40 · 32 阅读 · 0 评论 -
调用DLL中的对象的方法返回值为string时报错
调用DLL中的对象的方法返回值为string时报错!!!!问题:对象TDllNumber在objdll.dll中定义:objdll.dll输出一个函数:CreateObjecttypeTDllNumber=classpublicfunction GetOk:string;virtual;abstract;end;TDllNumber1=class转载 2015-04-13 15:21:48 · 2336 阅读 · 0 评论 -
一般函数指针和类的成员函数指针
转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/11/26/2264709.html函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针和一般函数的指针的表现形式不转载 2014-12-19 10:44:44 · 367 阅读 · 0 评论 -
delphi 三层架构简单例
所谓三层:(1) 客户端(2) 服务器端(3) 数据库 在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。 在Delphi中可以使用Socket或者Dcom来连接他们相互间的通讯。如果使用Scocket在系统使用时必须提供Scocket连接器,而Dcom则不用。客户端和服务器的连接需要Broker来联系。环境为winxp sp2 + del转载 2014-04-26 22:14:14 · 1370 阅读 · 1 评论 -
使用WinCrypt进行简单的对称加密实例
使用WinCrypt进行简单的对称加密实例2008年12月16日星期二微软在wincrypt.h中定义了大量的加解密算法的API,方便了软件加解密的实现,可以使我们不必关注密码学的算法,就可以实现高效率的软件加密。下面通过一个类,对API实现简单的封装。详细代码如下: 头文件:MyCryptOpt.h#pragma once #include "windows.h"转载 2014-04-25 16:27:28 · 4401 阅读 · 0 评论 -
CserialPort串口类最新修正版(解决关闭问题)2011-11-04
这是一份优秀的类文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,类的封装方面等等。Remon提供的串口类网址为: http://codeguru.earthweb.com/network/serialport.shtml,由于已经运行十几年了,原文的问答部分列出来这么多年来的问题,经过网友们的总结,补充和修改原来代码后,整理出一份相对比较完美的代码。分享给需要的朋友们,有转载 2014-04-04 21:42:13 · 1616 阅读 · 0 评论 -
基于BCB的文件操作
在BCB中也提供了文件操作的函数,这些函数的功能和前面所介绍的大致相同,但这类函数和BCB关系紧密,能使用BCB中的AnsiString等数据类型,在BCB中用这种方式的文件操作是最方便的,下面我就把这种文件操作详细介绍。在BCB提供的这组文件操作函数中,可分为三种类型,就是:1、文件名函数,2、文件管理函数;3、文件I/O函数。1、文件名函数文件名函数可以对文件的名称、所在子转载 2014-02-03 16:32:23 · 769 阅读 · 0 评论 -
C++ builder 6 编译时提示Unable to open file 'DCLUSR.LIB' 之解决办法
以前曾出现过类似问题,解决过了!前几天应朋友要求帮忙改个东东,新装CB又出现这个问题。找了半天才解决。特此记在这里,以备忘记。找到下图文件(C:\Program Files\Borland\CBuilder6\Lib\dclusr.bpk)双击之点击Install即可。我这个图里因已经安装过,所以变灰了!转载 2014-01-31 10:06:29 · 4129 阅读 · 0 评论 -
更方便地动态调用DLL导出函数(VC++)
Submitted by 李马您可以任意转载这篇文章,但请在转载时注明原始链接和作者,谢谢。在一般情况下,动态调用DLL导出函数的方法是:用typedef为目标函数定义函数指针类型。用GetProcAddress获取函数指针。用函数指针进行调用。但是,如果要调用的函数太多的话,这个方法难免流于繁琐——有太多的typedef、太多的GetProcAddress和太多的函数指针转载 2014-03-10 16:38:53 · 2165 阅读 · 0 评论 -
我的C++编程命名规范
在软件开发过程中,代码的命名规范是一项很突出的内容。一套定义完整、结构清晰明了的命名规范将大大提升源代码的可读性和软件的可维护性。据考证,没有一种命名规则可以让所有的程序员都满意,程序设计教科书一般也不会指定命名规则。但是制定一套令开发组成员基本满意的命名规则,并在项目中贯彻实施,也是团队开发一项必不可少的工作。我将我的团队的实际工作中的命名规则整理如下: 第一部分:共性规则共转载 2014-03-04 19:56:51 · 584 阅读 · 0 评论 -
BCB中保存配置信息的几种方法
编写的每一个程序中,我们都要保存一些有用的信息,如何保存这些信息呢?[喝小酒的网摘]http://blog.const.net.cn/a/8497.htm比较常用的有三种方法,一种是使用注册表,一种是使用Ini文件,还有就是使用文件。采用那种方法保存配置信息,不同的人可能有不同的习惯,这三种方法那种最适合你的程序呢,究竟那个最方便呢?一、使用注册表在BCB中有个TRegistr转载 2014-03-02 18:27:59 · 1850 阅读 · 0 评论 -
ODAC使用
ODAC使用1 —— 写在前面本来《ODAC使用2》是我写的第一篇有关ODAC使用的文章,但写着写着发现还有一些东西(除了ODAC控件安装)要写在前面。TOraSession组件:Session(会话)程序与数据库沟通的基础,就是说,要想操作数据库中的数据(查询、插入或是更新),首先要做的就是要开通程序与数据库服务之间的会话。我是Java出身的,不知道是不是可以这样理解转载 2014-02-23 00:55:54 · 6375 阅读 · 1 评论 -
WinExec() system() ShellExecute() 区别
WinExec()是一个WIN32 API,它的第一个参数必须包含一个可执行文件名,System()是C库函数,它接受一个DOS命令。ShellExecute()和WinExec()区别━━━━━━━━━━━━━━━━━━━━━━━━━━我认为从功能上: createprocess > shellexecute > winexec 复杂程度也是!winexec() 只用于可转载 2014-02-04 14:41:18 · 6814 阅读 · 0 评论 -
ADO控件简介
ADO控件简介一、 TADOConnection组件该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等.该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据集及命令组件通过设置其 ConnectionString属性,可以直接连接到数据库.但是如果多个数据集使用相同的数据库连接时,则使转载 2014-02-04 21:39:14 · 4929 阅读 · 0 评论 -
MFC关于Radio按钮的操作
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButton *)转载 2013-12-08 23:40:52 · 541 阅读 · 0 评论 -
#pragma pack(push,1)的一个副作用
在C++中,定义通信协议的.h头文件,有时候会使用#pragma pack(push,1)来修改数据结构成员的内存对齐方式(为1个字节对齐)假设现在有Package.h //Filename: package.h#pragma pack(push,1)struct cmd_test{ int iFlag1; char s转载 2015-10-13 09:01:28 · 870 阅读 · 0 评论 -
C++位操作的常见用法小结
摘自:http://www.jb51.net/article/54824.htm本文以实例形式对C++位操作的常见用法进行了总结。分享给大家供大家参考之用。具体方法如下:在C++中位操作有6种基本操作符,按照优先级分别是:取反 ~移位 >与 &异或 ^或 |常用的用法有:1 判断偶数,判断最低位是0还是1即可,转载 2015-12-01 17:24:28 · 616 阅读 · 0 评论 -
在 VS2017 使用所有旧版本的平台工具集
摘自:https://bbs.pediy.com/thread-248840.htm用 VS2017 写代码, 用 VC++6.0 编译.本文环境Windows 10 x64 VS2017 VS2010 VC++6.0具体流程 安装VS2017 注意要把核心的那些组件都勾选, 经常看到有朋友为了节约硬盘空间少勾选导致功能缺失. 安装VS20...转载 2019-04-10 09:36:28 · 16531 阅读 · 0 评论 -
vs2017支持所有版本VC
版权声明: https://blog.csdn.net/halchan/article/details/78405401前言研究目标:VS2017作为目前最新的IDE,让其支持所有版本的VC编译环境必要性:报建通依赖的特定版本的AutoCAD作为“宿主”环境,作为一个通用产品,就需要支持所有的AutoCAD版本。现在AutoCAD版本需要支持的版本有AutoCAD 2005-201...转载 2019-04-10 09:33:40 · 1778 阅读 · 0 评论 -
在VS2010项目中引用Lib静态库(以Openssl为例)
摘自:http://www.cnblogs.com/liping13599168/archive/2011/03/16/1986024.htmlOpenssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。首先下载Openssl包:(http://www.openssl.org/),...转载 2019-04-12 14:46:43 · 388 阅读 · 0 评论 -
Windows环境下的安装gcc
摘自:https://www.cnblogs.com/shichuan/p/4475178.htmlWindows具有良好的界面和丰富的工具,所以目前linux开发的流程是,windows下完成编码工作,linux上实现编译工作。为了提高工作效率,有必要在windows环境下搭建一套gcc,gdb,make环境。MinGW就是windows下gcc的版本。下载地址http:/...转载 2019-04-12 09:30:42 · 909 阅读 · 0 评论 -
【底层原理】C/C++内存对齐详解
什么是内存对齐还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占4+1=5byte;但是实际上,通过运行程序得到的结果是8 byte,这就是内存对齐所导致的。//32位系统#includestdio.h>struct{ int x; char y;}s;int mai转载 2017-12-16 08:53:02 · 383 阅读 · 0 评论 -
值得推荐的C/C++框架和库
【本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm】留作存档下次造轮子前先看看现有的轮子吧值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测转载 2017-06-07 15:01:56 · 357 阅读 · 0 评论 -
函数返回char* 的解决方案
在C语言中,自动变量在堆栈中分配内存。当包含自动变量的函数或代码块退出时,它们所占用的内存便被回收,它们的内容肯定会被下一个所调用的函数覆盖。这一切取决于堆栈中先前的自动变量位于何处,活动函数声明了什么变量,写入了什么内容等。原先自动变量地址的内容可能被立即覆盖,也可能稍后才被覆盖。 解决方案: 1. 返回一个指向字符串常量的指针。例如:char* func() {转载 2017-05-27 18:00:59 · 14727 阅读 · 0 评论 -
C++中vector和map使用详解
vector:标准库Vector类型使用需要的头文件:#include Vector:Vector 是一个类模板。不是一种数据类型。 Vector是一种数据类型。一、 定义和初始化Vector v1; //默认构造函数v1为空Vector v2(v1);//v2是v1的一个副本Vector v3(n,i);//v3包含n个值为i的元素Vector转载 2017-04-05 17:30:00 · 3909 阅读 · 0 评论 -
监控windows服务,当服务停止后自动重启服务
近期花时间研究了一下windows和linux下某服务停了后自动重启的功能,在网上收集了些资料,并经过测试,在此整理一下。这里介绍的是windows服务的监控,是通过批处理来实现的。本例是监控windows的Computer Browser为例,每60秒检测一次(可根据实际需要调整间隔),当发现服务停止后自动重启。AutostartService.bat批处理文件内容如下@转载 2017-02-21 17:10:35 · 3610 阅读 · 0 评论 -
设置VC6搜索路径
方法一:最通常的做法就是:Tools/Options.../Directors ,在这里面添加VC 头文件,库文件,可执行文件,的搜索路径; 这种做法,可以只做一次。如VC6配置directshow,GDI+等方法; 方法二:在VC工程中添加相对路径: 1:头文件目录: 工转载 2016-12-28 11:56:19 · 521 阅读 · 0 评论 -
C++生成全局唯一Guid
在软件开发中,我们经常需要一个唯一标识来标识一个对象,在PHP中,可以用UUID来获得全局唯一的ID,其实C++也内置了简单的GUID获得办法,猜想GUID应该是本机的特征以及运行的时间的一个哈希值,所以几乎可以保证不会重复,代码如下:Guid#include #include //--生成GUIDconst char* newGUID(){ static char转载 2016-11-19 16:42:57 · 4746 阅读 · 0 评论 -
error MSB3073 copy错误的一个解决办法
error MSB3073 copy错误的一个解决办法2014年08月29日 ⁄ 综合 ⁄ 共 124字 ⁄ 字号 小 中 大 ⁄ 评论关闭出现这个copy错误应该是找不到文件位置造成的,可以用如下方法解决:打开“项目属性”——“配置属性”——“生成事件”——“后期生成事件”,将命令行中的内容删除即可。然后再编译就能成功了。转载 2016-11-09 17:15:00 · 5304 阅读 · 0 评论 -
C++中使用vector容器
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=ve转载 2016-08-12 11:08:37 · 331 阅读 · 0 评论 -
二维数组和指向指针的指针
一道面试题引发的问题,首先要知道[]的优先级高于*,题目:char **p,a[6][8]; 问p=a是否会导致程序在以后出现问题?为什么?直接用程序说明:#includevoid main(){ char **p,a[6][8]; p = a; printf("\n");}编译,然后就会发现通不过,报错:错误 1 e转载 2016-08-19 17:43:59 · 545 阅读 · 0 评论 -
C++传值,传址,引用的区别
引用与指针的比较 引用是C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。例如有人名叫王小毛,他的绰号是“三毛”。说“三毛”怎么怎么的,其实就是对王小毛说三道四。所转载 2013-08-23 21:22:30 · 758 阅读 · 0 评论 -
C++位运算
前言 看到有些人对位运算还存在问题,于是决定写这篇文章作个简要说明。 什么是位(bit)? 很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一个双字(DWORD)是二个字(WORDS)或三十二位。如下所示:转载 2013-08-07 23:04:57 · 548 阅读 · 0 评论 -
一些编程小技巧----不断更新中 .
一、数字转化成字符 如有 int a = 5 现在要把 5变成 '5' 放入ch中[cpp] view plaincopyprint?int a=5; int ch; ch = a+'0'; int a=5;int ch;ch = a+'0';二、给对话框标题栏 添加图标 要是给一转载 2013-03-04 10:57:32 · 397 阅读 · 0 评论 -
电脑C盘application data拒绝访问的解决方法
电脑C盘application data拒绝访问,更改属性里的完全控制,又出现将安全信息应用到以下对象时发生错误 解决方法(百度知道推荐的,测试过,ok):推荐答案 你的是Win7吧?是的话按照下面方法解决:建一个记事本输入以下代码:---------------------------------------------------【我是分割线不要复制】Windo转载 2012-07-22 15:15:24 · 27914 阅读 · 1 评论 -
WindowsNT下Service的编程
WindowsNT下Service的编程----此例中原程序使用Delphi编制,老妖将之改成CB版。:D----WindowsNTServer提供多种功能强大的服务(Service),例如FTP,WWW或远程登录服务,另外常用的数据库服务器也是以Service的形式存在于NTServer上的,如Sybase SQLServer For NT。Service一般在NT启动时转载 2012-03-13 09:49:01 · 416 阅读 · 0 评论 -
StatusBar状态栏上显示时实时间 C++BUILDER6
添加定时器 void __fastcall TForm1::Timer1Timer(TObject *Sender) { StatusBar1-> Panels-> Items[1]-> Text=Now().FormatString( "yyyy原创 2011-07-03 10:41:12 · 1304 阅读 · 0 评论 -
Showmodal与show的区别
Show:Use Show to set the form Visible property to true and to bring the form to the front of other forms on the screen.ShowModal:Use ShowModal to show a form as a modal form. A modal form is one wher转载 2011-06-15 15:39:00 · 993 阅读 · 0 评论 -
BCB编译的exe没有找到vcl60.bpl
BCB6.0下编译的EXE文件,不能在其他机器上运行(只有装了C++BUILDER的机器才能执行)其提示为:没有找到vcl60.bpl.解决方法:打开工程选项(Ctrl + Shift + F11)1.在compiler下选择Release2.在Packages下去除Build with Runtime Packages3.在Linker下去除Use dynamic RTL转载 2011-06-10 12:30:00 · 2485 阅读 · 0 评论 -
C++ Builder API函数大全
1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConne转载 2011-06-11 22:16:00 · 1288 阅读 · 0 评论