- 博客(56)
- 资源 (4)
- 收藏
- 关注
原创 SOCKET传输数据、文件
/** * 函数:XSendData * 描述:发送数据 * 参数:sock socket * lpszBuff 缓冲区 * nDataSize 数据长度 * nPacketSize 每次传输的数据块长度 * nOverTime 超时 (秒) *
2011-03-31 09:24:00 1077
原创 设置socket超时连接
BOOL ConnectAndSetSocketTimeOut(SOCKET sock,const CString &strIP,int port){ int result; unsigned long ul = 1; result = ioctlsocket(sock, FIONBIO, (unsigned long*)&ul); if(result==SOCKET_ERROR) { ::closesocket(sock);
2011-03-30 10:22:00 600
原创 典型的socket链接
<br /> SOCKET sockConn;<br /> if ( (sockConn = socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET )<br /> {<br /> <br /> return ;<br /> }<br /> <br /> u_long ul = 1;<br /> in
2011-03-29 16:07:00 652
原创 三态树其原理
背景知识:树节点前面的复选框实质上是不同的几幅位图,所谓选中没选中呈现的只不过是显示了不同的位图而已。但是GetCheck是如何判定是否为选中的呢,经过测试认为,这几幅位图有个先后顺序,第一幅位图表示没选中,第二幅位图表示选中了,而GetCheck实际返回的便是这位图序号的索引,
2011-03-29 09:00:00 776
原创 设置Cstatic控件背景透明
1.控件选中transparent属性2.HBRUSH CWaitDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, p
2011-03-28 14:07:00 1382 1
原创 设置对话框背景透明
<br />BOOL CWaitDialog::OnInitDialog() <br />{<br /> CDialog::OnInitDialog();<br /> <br /> // TODO: Add extra initialization here<br /><br /><br /> // 设置窗体透明<br /> SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd
2011-03-28 13:40:00 777
转载 设置对话框背景色
具体步骤: 1 给你的工程中的对话框类添加一个CBrush变量,如: CBrush m_bkBrush; //准备一把背景刷子 2 在对话框的初始化函数OnInitDialog中return TRUE的前面添加一行代码: m_bkBrush.CreateSolidBrush(RGB(255,255,0)); //创建一把黄色的背景刷子 3 最后把你原来的代码改成如下: HBRUSH CEX06aDialog::
2011-03-28 12:21:00 870
原创 当改变了动态库的生成名字时,编译出警告Linking... Creating library ARMV4IRel/my.lib and object ARMV4IRel/my.exp my.exp : warning LNK4070: /OUT:RE
<br />Linking...<br /> Creating library ARMV4IRel/my.lib and object ARMV4IRel/my.exp<br />my.exp : warning LNK4070: /OUT:RES_EN.dll directive in .EXP differs from output filename 'ARMV4IRel/my.dll'; ignoring directive<br /> <br />.EXP 中的 /OUT:filenam
2011-03-28 11:35:00 1210
原创 extern, extern "C",__stdcall
<br />C编译器把人写的函数名当成函数名<br />C++编译器把人写的函数名做了改动之后当成函数名<br />为了让c++编译器不改动函数名,就加上extern "C" <br /><br />假设dll导出一个int add(int a, int b);<br /><br />一. 采用函数声明导出的方式<br />(一) extern "C"<br /><br />1.导出函数不加extern "C"。<br />(1) 动态调用:<br />编译器生成的实际导出函
2011-03-26 17:54:00 878
原创 区位码,国标码,内码
<br />区位码:可当作一种逻辑概念,它按照区号加位号的方式为每个汉字编码。采用两个两位的十进制数表示。<br />国标码:GB2312为每个汉字编的码,可认为它是区位码的一个“子集”(比如港澳台地区也按照自己的区位码的方式为每个汉字编码),只不过它的编码方式与区位码不一样。采用两个两位的十六进制数表示。<br />内码:二进制序列,是字符在计算机内部真正的表示。<br /> <br />下面列一下区位码,国标码,内码三者之间的转换公式:<br />区位码-->国标码:区位码(十进制)的两个字节分别转换为
2011-03-26 08:52:00 2364
原创 VC 添加gif文件到资源
1. 在资源结构上右键--Insert--import, Open As 选择custom ,然后找到gif文件,点击import,之后在Resource type里输入Gif(这个名字是自己定的),便可以了.2. 下面是用的CPictureEx提供的调用gif文件的方法 if(m_GifPic.Load(MAKEINTRESOURCE(IDR_GIF1),_T("Gif"))) { m_GifPic.Draw(); }附上:CPictureEx.h和Cpictu
2011-03-25 17:29:00 1852
原创 extern "C" 与 __stdcall使用
extern "C" __declspec (dllexport) char* __stdcall SQLFetch(const char* fieldname);C語言中extern cc与c++程序连接问题 它们之间的连接问题主要是因为c c++编绎器对函数名译码的方式不能所引起的,考虑下面两个函数 /* c*/ int strlen(char* string) { ... } //c++ int strlen(char* string) { ... }
2011-03-25 16:43:00 936
原创 MFC动态库内部产生对话框不显示的问题
<br />外部程序调用MFC动态库时,由动态库产生一个对话框,但是不显示...<br />在doModal之前加上<br /> AFX_MANAGE_STATE(AfxGetStaticModuleState());<br /> <br /> <br />下面是建动态库时vc自动写的一个提示<br />//<br />// Note!<br />//<br />// If this DLL is dynamically linked against the MFC<b
2011-03-25 16:07:00 1691
原创 MySQL unique和index的关系
可以认为,MySQL中唯一性约束必然跟着有索引。1. 建表时设置某字段为unique,则MySQL自动为该自动增加一个索引,索引名字与列名相同create table ss(a int unique)则a字段上自动产生一个索引2. 设置已存在的字段为唯一性,则
2011-03-25 13:32:00 1846 1
原创 MySQL删除索引的存储过程
drop procedure if exists Pro_DelIndexcreate procedure Pro_DelIndex(in TableName varchar(32), in IndexName varchar(32))begindeclare s
2011-03-25 13:10:00 1052
原创 MySQL concat 引号
1. concat各项用双引号括起来。其实也可以用单引号括起来,但是当参数里面再有单引号的时候很容易混乱,而且语法也不对。2. 双引号中的单引号不必用转义字符
2011-03-25 13:08:00 3922
转载 MysQL 修改表结构
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER col
2011-03-25 09:27:00 603
原创 MySQL网络数据库指南
1. 在选择某种数据类型时,只需要选择能覆盖取值范围的最小类型即可。2.定义数据类型时的(数值),数值表示的是该列占用字符数3.浮点数在定义字段时便可以指定小数点位数4.在同一个表中不要混用CHAR和VARCHAR,因为只要有一个列是VARCHAR,则其它定长行的优点
2011-03-24 09:40:00 551
转载 left join 和 right join
sql之left join、right join、inner join的区别left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等
2011-03-22 09:27:00 466
转载 vc打开并读取txt文件
让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。MFC的类“CFileDialog”用于实现这种功能。使用“CFileDialog”声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保
2011-03-21 17:07:00 2865
转载 事务的概念
MySQL5.X都已经发布好久了,但是还有很多人认为MySQL是不支持事务处理的,这不得不怪他们是孤陋寡闻的,其实,只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力。这里面,又以InnoDB表类型用的最多,虽然后来发生了诸如Oracle
2011-03-21 09:10:00 569
转载 on duplicate key update
用在insert语句中。通俗的讲,用它有个前提条件:该表得有一个primary key或者unique索引,并且插入的内容包含这个字段,当插入的记录的该字段在表中已存在时,则更新存在的行,更新的内容为update后面指定的内容;如果不存在,则插入新行。 例如,如果列a被定
2011-03-19 09:42:00 125
原创 MySQL索引
INDEX索引:通常意义的索引,某些情况下KEY是它的一个同义词。索引的列可以包括重复的值。UNIQUE索引:唯一索引,保证了列不包含重复的值,对于多列唯一索引,它保证值的组合不重复。PRIMARY KEY索引:也UNIQUE索引非常类似。事实上,PRIMARY KEY索
2011-03-19 09:21:00 390
原创 MySQL删除修改主键
如果主键是自增长,则需要首先取消自增长ALTER TABLE T_SC_UserManager CHANGE userId userId int(10);然后,删除主键ALTER TABLE T_SC_UserManager DROP PRIMARY KEY;然后
2011-03-19 09:20:00 1350
原创 主键只可能有一个,但一个主键可以由多个字段组成
在绿色工具里,可以对多个字段打上主键的标识“锁”,但这并不表示表拥有了多个主键,而是说这几个字段共同构成了主键。当然,他们之间也是有次序的。查看次序可以使用show index from table。会看到Key_Name中有多个Primary,而Seq_in_index便是指各
2011-03-19 09:14:00 19446
原创 关于MySQL字符集
1. My.ini配置了字符集名称,则数据库自动使用该字符集查看数据库的相关字符集属性可以show variables like 'character%'2. 由于CMD窗口对字符集支持的限制,通常用其输入中文查询是有问题的3.vc里面mysql_set_character_set(myData,"gbk");这句话的作用仅仅对当前连接有效,意思是告诉数据库,这次连接传给你的数据是gb
2011-03-17 13:54:00 539
原创 mysql存储过程传递字符串参数
存储过程: create procedure Pro_GetUserInfo(in szEmpName varchar(1000)) -> begin -> declare strSql varchar(1000); -> set strSq
2011-03-17 13:14:00 11955
转载 SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部
2011-03-17 10:36:00 584
转载 匈牙利命名法vc++前缀规则
<br />匈牙利命名法<br /><br />匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。 <br /
2011-03-17 09:18:00 647
原创 CEdit控件限制只能输入特定字符的方法
继承一个CEdit类,然后实现WM_CHAR消息 void CLimitEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code
2011-03-16 16:39:00 1264
原创 虚拟列表第一列显示图标的办法
1. 加载图像 /* 加载图像 */ m_imageList.Create(16,16,ILC_COLOR32|ILC_MASK,2,2); m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICONNOLIN
2011-03-16 16:36:00 726
原创 vc中调用MySql存储过程
VC调用存储过程如调用sql语句一样。 但必须设置一点:mysql_real_connect 最后一个参数设置为CLIENT_MULTI_STATEMENTS,无论返回不返回结果集
2011-03-16 11:38:00 971
原创 MySql使用存储过程分割字符串
DROP FUNCTION IF EXISTS func_split_TotalNum CREATE DEFINER = root FUNCTION func_split_TotalNum -> (f_string varchar(1000), f_delimi
2011-03-16 11:35:00 744
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人