![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++/vc
sichuanwww
VegaPrime/Android/LabWindows/Python/ThreeJS
展开
-
最佳冒泡排序和二分法递归查找代码
冒泡排序,注意排除了已经排好的后半部分(j原创 2023-11-25 10:32:40 · 118 阅读 · 0 评论 -
C语言控制台程序按键控制
获取按键键值,实现光标控制,简单的推箱子游戏,以及计时处理。原创 2023-11-11 16:16:17 · 378 阅读 · 0 评论 -
SHELLEXECUTEINFO控制外部进程
启动外部应用程序,进行严格控制,判断是否已经启动,对已经启动的副本进行关闭操作等。原创 2023-05-11 09:02:09 · 298 阅读 · 0 评论 -
ListBox数据更新
Listbox数据更新太快或太多时,程序往往会卡死,主要是及时绘制外形引起的,只要更新时不绘制外形即可解决。原创 2021-12-17 11:03:31 · 810 阅读 · 0 评论 -
MBR每个分区不超过2T
MBR(master boot record):主引导记录,硬盘的第一个扇区,0柱面0磁头1扇区,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。扇区尺寸=446+16*4+2=512 每个扇区512字节每个分区项用16个字节储存,到2TB中间总感觉算不通,原来16个字节分别有不同的功能,其中只有4个字节也就是32位储存扇区总数,每个扇区512字节,也就是2的9次方,32+9=41,2的41次方...原创 2021-11-04 10:58:08 · 675 阅读 · 0 评论 -
V2008无法安装问题的解决方法
通常是安装顺序的问题,也可以通过该方法解决:1、把vs2008镜像文件下的\WCU\WebDesignerCore\WebDesignerCore.EXE 手动解压到一个地方(注意解压出来的文件夹里面有个Office.zh-cn)。2、找一个office2007光盘或光盘镜像,找到Office.zh-cn文件夹,把该文件夹复制,然后覆盖到上一步解压中的Office.zh-cn中。3、在第一步解压出来的文件中有个setup.exe,双击运行,好像是安装vs web 开发什么注意,只要能安装就.原创 2020-11-02 08:24:15 · 270 阅读 · 0 评论 -
CPP类之间的回调函数
回调就是一种利用函数指针进行函数调用的过程. 通过回调,对象能够携带一些信息,这些信息允许它在稍后的某个时刻调用初始的对象。回调的价值在于它的灵活性,可以在运行时动态的决定需要调用什么方法。引用一段话: 使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。以下例子在VS2008中调试通过#incl...原创 2020-08-17 10:17:21 · 612 阅读 · 0 评论 -
C回调函数样例
定义回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调方法 是 任何一个 被 以该回调方法为其第一个参数 的 其它方法 调用 的方法。很多时候,回调是一个当某些事件发生时被调用的方法。机制⑴定义一个回调函数;⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调原创 2020-08-17 09:25:33 · 133 阅读 · 0 评论 -
C++传递不定参函数
定义不定参数函数,要用到下面这些宏:va_start(ap, farg): 初始化一个va_list变量ap,farg是第一个形参 va_arg(ap, type): 获取(下)一个type类型的参数 va_end(ap): 结束使用apC++语言里编写不定参数函数的形式是这样的:#include <stdarg.h>int sum(int cnt,...) { int sum = 0; int i; va_list ap; va_start(a原创 2020-08-03 09:34:41 · 552 阅读 · 0 评论 -
OpenSSL的使用
SSL是Secure Sockets Layer(安全套接层协议)的缩写。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。首先是OpenSSL的配置1 使用WxpRs...原创 2020-06-07 15:06:30 · 361 阅读 · 0 评论 -
完成端口(CompletionPort)详解
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解----- By PiggyXP(小猪)前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关...转载 2020-05-29 08:52:34 · 450 阅读 · 0 评论 -
网络编程对象socke中的IOCP完成端口
为什么要采用Socket模型,而不直接使用Socket? 原因源于recv()方法是堵塞式的,当多个客户端连接服务器时,其中一个socket的recv调用时,会产生堵塞,使其他链接不能继续。这样我们又想到用多线程来实现,每个socket链接使用一个线程,这样效率十分低下,根本不可能应对负荷较大的情况。于是便有了各种模型的解决方法,总之都是为了实现多个线程同时访问时不产生堵塞。完成端口(IOCP)模型:首先来说为什么要使用完成端口:原因还是因为为了解决recv方法为阻塞式的问题,Wi...原创 2020-05-14 08:38:56 · 252 阅读 · 0 评论 -
网络编程对象socke中的select模型
在掌握了socket相关的一些函数后,套接字编程还是比较简单的,日常工作中碰到很多的问题就是客户端/服务器模型中,如何让服务端在同一时间高效的处理多个客户端的连接,我们的处理办法可能会是在服务端不停的监听客户端的请求,有新的请求到达时,开辟一个新的线程去和该客户端进行后续处理,但是这样针对每一个客户端都需要去开辟一个新的线程,效率必定底下。 其实,socket编程提供了很多的模型来处理这种情形,我们只要按照模型去实现我们的代码就可以解决这个问题。主要有select模型和重叠I/o模型,以及完成...原创 2020-05-14 08:25:27 · 250 阅读 · 0 评论 -
LabWindow多线程
#include <utility.h>#include "toolbox.h"#include <cvirte.h> #include <userint.h>#include "MainWindow.h"//线程开始标记,值为1时开始多线程int threadID;static int startflag = 0; ...原创 2020-04-17 15:14:22 · 462 阅读 · 0 评论 -
VC创建XML文件
XML文件清晰,通用性强。以下代码在VS2008下调试通过。//包括msxml头文件#include <msxml6.h>//引入msxml动态链接库#pragma comment(lib,"comsuppwd.lib")//创建XML文件void PublicParseXML::CreateXML(CString strFileName){ CoIni...原创 2019-11-18 10:03:41 · 303 阅读 · 1 评论 -
API
原创 2005-10-11 20:16:00 · 1037 阅读 · 1 评论 -
在VC中创建和使用动态链接库(DLL)的一般方法
一.Win32 动态链接库 启动VC6,创建工程,选择 Win32 Dynamic-Link Library,输入工程名称,如Win32dll。确定,进入设置界面。在当前界面选择第三项:A DLL that exports some symbols。 创建完工程后,打开win32dll.h文件,会看到默认创建的函数。其中创建了一个可以导出的类CWin32dll。在其他程序原创 2008-09-11 18:01:00 · 999 阅读 · 0 评论 -
Visual C++开发数据库技术的特点
Visual C++提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLE DB、ADO等。这些技术各有自己的特点,它们提供了简单、灵活、访问速度快、可扩展性好的开发技术。 简单性 Visual C++中提供了MFC类库、ATL模板类以及AppWizard、ClassWizard等一系列的Wizard工具用于帮助用户快速的建立自己的应用程序,大大简化了应用程序的原创 2008-10-16 12:24:00 · 762 阅读 · 0 评论 -
应用ODBC API建立应用程序
虽然直接应用ODBC API编制应用程序相对来说较为繁琐,但是,由于直接使用ODBC API编写的程序相对要简洁、高效。所以,我们有必要学习直接使用ODBC API编程。看图之王ACDSee 6.0应用大全数码人像照片矢量化及艺术处理六天学会Visual Basic数据库编程解析“震荡波”恶性蠕虫病毒 一般地,编写ODBC程序主要有以下几个步骤: 分原创 2008-10-16 12:29:00 · 693 阅读 · 0 评论 -
循环测试系统端口
#include "stdafx.h"#include #include #include #include #include#pragma comment (lib,"ws2_32.lib") int main (int argc, char *argv[]) { int iportFrom,iportTo; int testsocket; int iopenedport = 0;原创 2008-10-16 23:20:00 · 726 阅读 · 0 评论 -
数据转换
atoi(将字符串转换成整型数) 相关函数 atof,atol,atrtod,strtol,strtoul 表头文件 #include 定义函数 int atoi(const char *nptr); 函数说明 atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(/0)才结束转换,并将结果返回。 返回值 返回转换后的整型数原创 2008-10-16 23:26:00 · 495 阅读 · 0 评论 -
vc下操作MYSQL中文数据的参考程序
//在vc下操作MYSQL中文数据的参考程序 #include #include #include #include #include using namespace std; int connDB(); int create_table(); int insert_table(); int select_table(); int disconnDB(); MYSQL *mysql; M原创 2008-10-16 12:16:00 · 599 阅读 · 0 评论 -
VC++中使用ADO方式操作ACCESS数据库
ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。本文详细地介绍在Visual C++开发环境下如何使用ADO来进行数据库应用程序开发,并给出示例代码。为原创 2008-10-16 12:19:00 · 598 阅读 · 0 评论 -
[转]vc中socket编程步骤
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP原创 2008-10-16 23:11:00 · 785 阅读 · 0 评论 -
如何整理ClassView视图中大量的类
可以在classview 视图中右键新建文件夹(new folder),再把具有相近性质的类拖到对应的文件夹中,使整个视图看上去清晰明了.原创 2008-10-05 14:12:00 · 529 阅读 · 0 评论 -
怎样加栽其他的应用程序
我记得这好象是出场频度很高的问题。 三个SDK函数 winexec, shellexecute,createprocess可以使用。 WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数 值得说一下,比如泥用 SW_SHOWMAXMIZED方式去加栽一个无最大化按钮的 程序,呵呵 就是Neterm,calc等等,就不会出现正常的 窗体,但是已经被加到任务原创 2008-10-05 14:30:00 · 477 阅读 · 0 评论 -
如何使窗口不可见?
很简单,用SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow 控制.原创 2008-10-05 14:38:00 · 834 阅读 · 0 评论 -
移动窗口
调用CWnd : : SetWindowPos并指定SWP_NOSIZE标志。目的位置与父窗口有关(顶层窗口与屏幕有关)。调用CWnd : : MoveWindow时必须要指定窗口的大小。//Move window to positoin 100 , 100 of its parent window .SetWindowPos (NULL, 100 , 100 , 0 , 0 , SWP_NOSI原创 2008-10-05 14:41:00 · 617 阅读 · 0 评论 -
重置窗口的大小
调用CWnd: : SetWindowPos并指定SWP_NOMOVE标志, 也可调用CWnd : : MoveWindow 但必须指定窗口的位置。// Get the size of the window .Crect reWindow ;GetWindowRect (reWindow );//Make the window twice as wide and twice as tall .Se原创 2008-10-05 14:45:00 · 739 阅读 · 0 评论 -
如何在对话框中显示一个位图
这要归功于Win 32先进的静态控件和Microsoft的资源编辑器, 在对话框中显示位图是很容易的, 只需将图形控件拖到对话中并选择适当属性即可,用户也可以显示图标、位图以及增强型元文件。32、如何改变对话或窗体视窗的背景颜色 调用CWinApp : : SetDialogBkColor可以改变所有应用程序的背景颜色。第一个参数指定了背景颜色,第二个参数指定了文本颜色。下例将应用程序对话设原创 2008-10-05 14:56:00 · 724 阅读 · 0 评论 -
如何获取一个对话控件的指针
有两种方法。其一,调用CWnd: : GetDlgItem,获取一个CWnd*指针调用成员函数。下例调用GetDlgItem,将返回值传给一个CSpinButtonCtrl*以便调用CSpinButtonCtrl : : SetPos 函数:BOOL CSampleDialog : : OnInitDialog ( ){ CDialog : : OnInitDialog ( ) ; /原创 2008-10-05 14:57:00 · 543 阅读 · 0 评论 -
如何在OLE控件中使用OLE_COLOR数据类型
诸如COleControl : : GetFortColor和COleControl : : GetBacalog : : EndDialog 来中止,无模式对话则是调用CWnd: : DestroyWindow来中止的,函数CDialog : : OnOK和CDialog : : OnCancel调用EndDialog ,所以需要调用DestroyWindow并重置无模式对话的函数。void C原创 2008-10-05 14:59:00 · 1555 阅读 · 0 评论 -
如何检索原先的Task Manager应用程序使用的任务列表
原先的Task Manager应用程序显示顶层窗口的列表。为了显示该列表,窗口必须可见、包含一个标题以及不能被其他窗口拥有。调用CWnd:: GetWindow可以检索顶层窗口的列表,调用IsWindowVisible、GetWindowTextLength以及GetOwnervoid GetTadkList (CListBox&list){ //Get first Window in w原创 2008-10-05 15:01:00 · 452 阅读 · 0 评论 -
如何改变控件的颜色
有两种方法。其一,可以在父类中指定控件的颜色,或者利用MFC4.0新的消息反射在控件类中指定颜色。 当控件需要重新着色时,工作框调用父窗口(通常是对话框)的CWnd: : OnCrtlColor,可以在父窗口类中重置该函数并指定控件的新的绘画属性。例如,下述代码将对话中的所有编辑控件文本颜色改为红色:HBRUSH CAboutDig : : OnCtlColor (CDC * pDCM ,原创 2008-10-05 15:07:00 · 777 阅读 · 0 评论 -
如何向编辑控件中添加文本
由于没有CEdit:: AppendText函数,用户只好自己做此项工作。调用CEdit:: SetSel移动到编辑控件末尾,然后调用CEdit:: ReplaceSel添加文本。下例是AppendText 的一种实现方法:void CMyEdit:: AppendText (LPCSTR pText){原创 2008-10-05 15:11:00 · 506 阅读 · 0 评论 -
如何访问预定义的GDI对象
可以通过调用CDC:: SlectStockObject使用Windows的几个预定义的对象,诸如刷子、笔以及字体。下例使用了Windows预定义的笔和刷子GDI对象在视窗中画一个椭圆。//Draw ellipse using stock black pen and gray brush.void CSampleView:: OnDraw (CDC* pDC){ //Determine原创 2008-10-05 15:12:00 · 365 阅读 · 0 评论 -
如何正确显示包含标签字符的串
调用GDI文本绘画函数时需要展开标签字符,这可以通过调用CDC:: TabbedTextOut或者CDC:: DrawText并指定DT_EXPANDTABS标志来完成。TabbedTextOut函数允许指定标签位的数组,下例指定每20设备单位展开一个标签:原创 2008-10-05 15:17:00 · 491 阅读 · 0 评论 -
如何快速地格式化一个CString对象
调用CString:: Format,该函数和printf函数具有相同的参数,下例说明了如何使用Format函数://Get size of window.CRect rcWindow;GetWindowRect (rcWindow);//Format message string.CString strMessage;strMessage.Format (_T ("Window Size (%d原创 2008-10-05 15:19:00 · 546 阅读 · 0 评论 -
抓屏函数
CDeskTopView::DeskTop(){CClientDC dc(this);CRect nRect;GetClientRect(&nRect);HWND hDesk=::GetDesktopWindow(); //得到桌面窗口句柄 //HWND hWallPaper=::GetDlgItem(hDesk,1); HDC hdc=::GetWin原创 2008-10-05 21:00:00 · 720 阅读 · 0 评论 -
定位预处理指定
在源文件中定位光标到对称的#if, #endif,使用Ctrl+K.原创 2008-10-05 14:14:00 · 400 阅读 · 0 评论