- 博客(89)
- 问答 (1)
- 收藏
- 关注
原创 libcurl崩溃
在编译完libcurl的dll和lib后,使用如下// http.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>#include <curl/curl.h>#pragma comment(lib,"libcurl.lib")int _tmain(int argc, _TCHAR* a...
2018-10-26 13:13:14 1611
原创 二叉树
#include#includetypedef struct Node{//结点类型 int data; struct Node* left; struct Node* right;}Node;typedef struct Tree{//二叉树的类型 Node*root;//指向根结点的指针 int count;//记录结点个数}Tree;//1 创建结点Node*Cr
2017-02-08 11:51:46 312
原创 delphi Controls Components 属性
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) mmo1: TMemo; scrlbx1: TScrollBox;
2017-01-12 16:57:27 1078
原创 c++函数的几种关系
//#include"stdafx.h"#includeusing namespace std;class A{};class B:public A{};//class B {};class Base {public: void foo(void) {// virtual 必须写在基类里 cout << "Base::foo(void)" << endl; } virtu
2016-10-20 02:49:37 462
原创 特殊的类型转换(单参构造,运算符重载)
#include//#includeusing namespace std;class Test1{public: Test1(void){//无参构造 缺省构造 num = 0; } Test1(int n){ cout << "Test1::constructor" << endl; num = n; } int & value(){ return num
2016-10-20 02:16:47 451
原创 lambda
Capture 子句Lambda 可在其主体中引入新的变量(用 C++14),它还可以访问(或“捕获”)周边范围内的变量。1.[var]表示值传递方式捕捉变量var2.[=]表示值传递方式捕捉所有父作用域的变量(包括this)3.[&var]表示引用传递捕捉变量var;4.[&]表示引用传递方式捕捉所有父作用域的变量(包括this);5.[this]表示值传递方式捕捉当前的
2016-10-18 12:52:54 593
原创 delphi7 TADODataSet TDBGridExt 简单应用
unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, ComCtrls, GridsEh, DBGridEh, DBGridExt, StdCtrls, Buttons;type TFo
2016-10-15 19:11:05 886
原创 delphi7 TADOConnection TADODataSet 简单应用
unit DBOperation;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, DB, ADODB, MemoExt;{INSERT INTO [testDB].[dbo].[stu]([I
2016-10-15 15:47:54 2269
原创 delphi7 TActionManager TTreeView 简单应用
unit TreeView;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ActnList, XPStyleActnCtrls, ActnMan, StdCtrls;type TForm3 = class(
2016-10-13 17:59:15 761
原创 delphi7 TRzCheckTree TImageList 简单应用
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, Menus, StdCtrls, ExtCtrls, ComCtrls, RzTreeVw;type TForm1 = class(TFor
2016-10-09 13:33:12 1435
原创 delphi7 ADO 方式连接 sqlserver2008/2005 简单应用
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,ADODB, StdCtrls, DB;type TForm1 = class(TForm) btConnectDB: TButton; ADO
2016-09-30 15:04:53 8754
原创 delphi7 TGauge Tprogressbar 简单应用
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Gauges;type TForm1 = class(TForm) pbCount100: TProgress
2016-09-30 11:21:39 2605
原创 vs调试动态库的方法(图解)
首先 ,dll 是以MFC的方式生成的,并且为了在调试dll时方便,我把dll和测试程序(一个控制台类型,一个MFC类型)都建在了一个工程下,这样可以在修改dll时通过下面的步骤设置生成dll的输出目录(比较方便)。下面是我的dll工程的输出目录的配置,你可以输出dll到你的测试程序目录下使用dll的方法有两种,可以动态链接,这里使用的是静态链接 。静态
2016-06-17 18:43:41 11205
原创 函数重载
一 概念 同一作用域的一组参数列表不同,函数名相同的函数 这组函数叫 函数重载(C++允许定义相同名称的函数) 作用:重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量, 避免了名字空间的污染,对于程序的可读性有很大的好处(一物多用) 参数列表不同: 1 参数类型不同
2016-06-16 02:23:52 356
原创 名字空间
名字空间的引入: 在C++中名称可以是变量 函数 结构体 类 及类的相关成员 使用第三方类库 时 极有可能出现名称冲突 c++利用作用域的特性引入了名字空间的概念 名字空间:名字空间是一种描述逻辑分组的机制 防止命名冲突 跨文件访问注意:名字空间 可以是全局的 可以是位于另一个名称空间中 不可以存在于代码块中1定义:
2016-06-16 01:59:12 462
原创 error LNK2001: 无法解析的外部符号 fatal error LNK1120: 1 个无法解析的外部命令(调用约定的问题)
问题背景:我在用MFC写的一个单文档的程序调用以MFC通过.def模块导出的DLL时出现了如下错误 error LNK2001: 无法解析的外部符号 "unsigned short __cdecl SearchCtrl(struct tagPARAMS &,short)" (?SearchCtrl@@YAGAAUtagPARAMS@@F@Z)1>E:\Test\TestMFCA\Deb
2016-04-14 09:45:50 4490
原创 简单的 winsock select模式
// WinSelectModel.cpp : 定义控制台应用程序的入口点。////server side ,select model/*Syntax:int select(_In_ int nfds,//Ignored. The nfds parameter is included only for compatibility with Ber
2016-04-03 19:22:30 1854 1
原创 简单的 Winsocket UDP 通信
// 服务端// UDP.cpp : 定义控制台应用程序的入口点。//1 为UDP通信,单例模式(饱汉式) ,收到客户端消息后发送服务器的时间//2 一些socket函数不兼容 预处理器定义里添加如下的宏//_WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;//3 UDP为非
2016-04-03 00:46:07 2363
转载 _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
处理办法:第一步:" #define _WIN32_WINNT 0x0502 "在StdAfx.h中添加上述宏定义。备注:必须在stdafx.h中所有#include 文件之前添加此代码。第二步:在StdAfx.h头文件里面加上#include 有关于平台的定义备注:如果StdAfx.h里面有了就不用加 #include 了!
2016-03-24 11:32:13 928 1
转载 如何解决标准C库的函数在vs上使用时出现的警告
那么如何搞定这些警告呢:方法一:将原来的旧函数替换成新的Security CRT functions。方法二:用以下方法屏蔽这个警告。1.在预编译头文件stdafx.h里(注意:一定要在没有include任何头文件之前)定义下面的宏: #define _CRT_SECURE_NO_DEPRECATE2.#param warning(disable:4996)3.更
2016-03-23 09:23:15 571
原创 _T(x) _TEXT(x) L 代表什么?
首先 中 #ifdef _UNICODE .... #define __T(x) L ## x //替换#else /* ndef _UNICODE */ #define __T(x) x //无替
2016-03-12 09:26:16 1073
转载 Visual Studio 路径宏
说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称(例如“Win32”)。
2016-03-08 17:06:27 343
原创 GetPrivateProfileInt 读取配置文件
#include#includeusing namespace std;void main(){ char buffer[1024]={0}; GetModuleFileName(GetModuleHandle(NULL), buffer, sizeof(buffer)); //GetModuleFileName:Retrieves the fully qualified p
2016-03-07 17:24:06 6183
原创 简单的 winsocket TCP通信
//服务器#include#include // socket 所需要的头文件#pragma comment(lib,"WS2_32.lib")// link socket 库#define PORT 9999 #define BUFLEN 1024using namespace std;int main(){ WSADATA wsaData
2016-03-05 14:53:08 3138
原创 c# 委托
using System;using System.Collections.Generic;using System.Linq;using System.Text;//委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似namespace delegateExample{ delegate int Math(int x,int y);// 声明一个委托
2015-12-16 17:55:00 269
原创 M3:不要对数组使用多态
//Item M3:不要对数组使用多态#includeusing namespace std;class BST {public: BST(){} BST(int data):data(data) { } int data; friend ostream& operator<<(ostream& os, const BST rhs);};ostream& operator
2015-10-31 17:29:35 391
原创 条款55:让自己熟悉Boost
/*条款55:让自己熟悉Boost*//*boost是一个c++开发者集结的社群如果你想把你准备好的程序库加入boost里要考虑以下内容1 这一份设计和实现有多好?2 这些代码可跨编译器和操作系统吗?3 这个程序库有可能被它所设定的目标用户使用吗?4 文档是否清楚,齐备,而且精确?boost 程序库对付的主题非常繁多 区分数十个类目包括:1 字符串与文本处理,覆盖具备类型安全的
2015-09-30 11:01:00 344
原创 条款54:让自己熟悉包括TR1在内的标准程序库
/*条款54:让自己熟悉包括TR1在内的标准程序库*///c++standard 98年被标准委员会核准了,03年发布了一个不很重要的错误修正版 08年左右发布了 c++standard2.0 日期不确定的一版叫c++0x 指 200x版c++//c++0x 覆盖了某些有趣的语言新特性,但大部分新机能都是以标准程序库的扩充形式体现,我们知道的某些新的程序库机能被详细叙述在TR1的文档内Tech
2015-09-30 10:59:52 430
原创 条款53:不要轻忽编译器的警告
/*条款53:不要轻忽编译器的警告*/#includeusing namespace std;class B {public: virtual void f()const;};class D :public B {public: virtual void f();};//如果我们写到这里进行编译有一个警告。。vs报错了。。编译器试图告诉你:B中的f并未在D中
2015-09-30 03:13:51 304
原创 条款52:写了placement new 也要写Placement delete
/*条款52:写了placement new 也要写Placement delete*/#includeusing namespace std;//class Widget {};class Widget {public: //.. static void*operator new(std::size_t size, std::ostream&logStream)thr
2015-09-30 03:03:57 353
原创 条款51:编写new和delete时需固守常规
/*编写new和delete时需固守常规*///非附属对象必须有独立的大小 #includeusing namespace std;class Base{public: static void*operator new(std::size_t size) throw(std::bad_alloc); //..};// operator new (pseudocode):void
2015-09-29 15:56:27 306
原创 条款50: 了解new和delete的合理替换时机
/*条款50: 了解new和delete的合理替换时机*/#includeusing namespace std;//替换编译器提供的operator主要三个最觉的理由// 1 用来检测运用上的错误 2 为了强化效能 3为了收集使用上的统计数据static const int signature = 0xDEADBEEF;typedef unsigned char Byte;void
2015-09-29 13:54:51 308
原创 条款49:了解new-handler的行为
/*条款49:了解new-handler的行为*/#includeusing namespace std;//operator new 当无法满足某一内在分配需求时,它会抛出异常,返回NULL指针,某些旧式编译器目前也还那么做,也可以当operator抛出异常之前先调用一个·客户指定错误处理函数(new-handler),但客户必须调用set_new_handler,那是声明于的标准程序库函
2015-09-29 12:49:47 338
原创 条款48:认识template元编程
/*条款48:认识template元编程*/// Template metaprogramming (TMP,模板元编程):是以C++写成,执行于C++编译器内的程序#includeusing namespace std;/*templatevoid advance(IterT&iter,DistT d){ if(typeid(typename std::iterator_trait
2015-09-29 00:00:58 322
原创 条款47:请使用traits classes 表现类型信息
/*条款47:请使用traits classes 表现类型信息*///Traits 是一种技术,一个C++程序员共同遵守的协议,它的要求之一是:它对内置类型和用户自定义类型的表现必须一样好//advance 用来将某个迭代器移动某个给定距离#includeusing namespace std;templatevoid advance(IterT &iter,DistT d);//但s
2015-09-28 17:57:19 430
原创 条款46:需要类型转换时请为模板定义非成员函数
/*条款46:需要类型转换时请为模板定义非成员函数*/#includeusing namespace std;templateclass Rational{public: Rational(const T&numerator=0,const T&denominator=1):a(numerator),b(denominator){ } const T numerator()
2015-09-28 16:06:51 448
原创 条款45:运用成员函数模板接受所有兼容类型
/*条款45:运用成员函数模板接受所有兼容类型*///真实指针做得好的一点是支持隐式转换,子类指针->基类指针,非常对象指针->常对象指针#includeusing namespace std;class Top{};class Middle:public Top{};class Bottom:public Middle{};/*Top*pt1 = new Middle;//子类到基
2015-09-27 17:02:35 290
原创 条款44:将与参数无关的代码抽离template
/*条款44:将与参数无关的代码抽离template*///共性与变性分析,把两个类或函数中本质相同的代码进行抽离成另一个相同类别的结构中//在模板代码中,重复的部分是隐晦的//下面是一个支持矩阵运算的例子#include#includeusing namespace std;/*templateclass SquareMatrix{public: //.. void in
2015-09-27 16:12:19 360
空空如也
STL的适配器容器的底层容器如何选择?
2015-09-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人