
C/C++
投木报琼zh
这个作者很懒,什么都没留下…
展开
-
关于gethostname函数失败的问题
调用gethostname之前, 要先调用WSAStartup才可以, 否则gethostname会失败!下面是正确的代码[cpp] view plaincopyprint?#include #include #include #include #include #pragma comment(lib, "Ws2_32") int转载 2014-05-07 10:36:24 · 2302 阅读 · 0 评论 -
error C2065: 'IDD_VIDEONETDLG' : undeclared identifier
开发平台:VC++6.0 出现错误:error C2065: 'IDD_VIDEONETDLG' : undeclared identifier,IDD_VIDEONETDLG为对话框ID号错误原因:没有包含resource.h头文件 解决办法:在该源文件的顶部添加:#include "resource.h"。转载 2014-05-06 09:48:17 · 917 阅读 · 0 评论 -
关于“warning C4786”
e:\vc98\include\utility(21) : warning C4786: 'std::pair,std::map,std::allocator >::_Kfn,std::less,std::allocator >::iterator,bool>::pair,std::map,std::allocator >::_Kfn,std::less,std::allocator >::i原创 2014-05-05 21:55:26 · 2203 阅读 · 0 评论 -
AfxMessageBox和MessageBox区别
如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。 但是在WIN32 SDK的情况下只能使用MESSAGEBOX。MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox().afxmessagebox更多的时候是用于调试AfxMessag转载 2014-05-05 16:43:51 · 612 阅读 · 0 评论 -
error LNK2001: unresolved external symbol __imp__WSAStartup@8
x 2010-10-08 18:222576人阅读评论(2)收藏举报socketVC6.0下的错误信息:error LNK2001: unresolved external symbol __imp__socket@12error LNK2001: unresolved external symbol __imp__WSAStartup@8错误原因:因为没转载 2014-05-05 15:25:53 · 744 阅读 · 0 评论 -
HTREEITEM的含义
HTREEITEM是树中节点的句柄,也就是一个DWORD值。在树中唯一标识一个节点。它的值对于程序员其实没有什么意义,只是可以通过它找到一个节点,从而取得节点的属性,如GetItemText( HTREEITEM hItem ) ;或对节点进行某些操作,如删除DeleteItem( HTREEITEM hItem );转载 2014-05-05 14:28:32 · 5730 阅读 · 0 评论 -
postmessage和sendMessage的区别
PostMessage只负责将消息放到消息队列中,不确定何时及是否处理 SendMessage要等到受到消息处理的返回码(DWord类型)后才继续 PostMessage执行后马上返回SendMessage必须等到消息被处理后才会返回。原创 2014-05-04 23:28:58 · 650 阅读 · 0 评论 -
mfc中静态文本框修改
待解决问题:MFC中静态文本框等静态控件的的修改解决方案:1. 修改静态控件ID(原始都是IDC_STATIC),改成别的任何的都可以,如这里我改成 IDC_TOTAL_CASES2. 比如我想一打开dialog就显示,那么就在OnInitDialog()中写上SetDlgItemText(IDC_TOTAL_CASES,ss);或者GetDlgItem(IDC_TOTAL_CAS转载 2014-05-08 10:09:38 · 1140 阅读 · 0 评论 -
在listctrl控件中响应鼠标单击和判断单击的是哪个列表头
添加一个函数afx_msg void OnClickList1(NMHDR* pNMHDR, LRESULT* pResult);选择响应的listctrl控件IDON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)原创 2014-05-17 12:05:26 · 3992 阅读 · 0 评论 -
端口分配
端口号 分配 0-1023 Well-Known (a.k.a. ‘system’) 系统预留 1024-49151 Registered (a.k.a. ‘user’) 用户分配 49152-65535 Dynamic/Private 动态和私有原创 2014-05-17 12:12:20 · 664 阅读 · 0 评论 -
对话框中各项属性介绍
虽然有些属性能够故名思义,但有些属性毕竟少用而忽略了它们的作用,所以在此罗列一下,方便日后查看:Gerneral选项卡: ID属性:用于设置资源ID,是程序对资源的标识。 Caption属性:设置对话框标题。 Font属性:设置字体信息,如类型,大小等,这个设置不会影响到标题栏文本的字体,而影响对话框内放置的控件的文本字体。转载 2014-05-17 20:06:31 · 3255 阅读 · 0 评论 -
Richedit中添加图片
在添加图片之前,先了解两个结构:1.STGMEDIUM 这个结构描述了一个用于数据传输介质的对象。 typedef struct tagSTGMEDIUM { DWORD tymed;//存储介质。封送处理和unmarshaling例程使用此值来确定哪个成员被使用。此值必须是TYMED枚举的因素之一。 union { HBITMAP h转载 2014-07-23 19:46:50 · 3818 阅读 · 1 评论 -
MFC自定义消息
消息机制是windows的典型运行机制,在MFC中有很多的消息如WM_BTN**等。但是在有些情况下我们需要自定义一些消息去做一些我们需要的功能,MFC的向导不能帮助我们做到这一点,我们可以通过添加相应的代码去完成这个功能。添加自定义消息操作如下:1. 建立MFC工程,如基于对话框的应用程序,Test。2. 在资源中添加要处理的消息的值,即在CTestDlg.h中添加 如下代码。转载 2014-05-04 21:23:59 · 765 阅读 · 0 评论 -
VC/MFC如何设置对话框背景颜色
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 (这个函数已经废弃)?1void SetDialogBkColor(COLORREF clrCtlBk = RGB(192, 192, 192), COLORREFclrCtlText = RGB(0, 0, 0));其中函数转载 2014-05-03 15:24:32 · 991 阅读 · 0 评论 -
将一个十六进制字符串转换为十进制数值的问题
在程序中,我们有时需要将一个十六进制字符串转换为十进制数字。比如:char *ptr="0x11";int n=0;//我们想让n等于0x11,即17通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法:char *ptr="123"; int n=0; n=atoi(ptr); printf("%d/n",n)转载 2014-04-02 09:41:49 · 934 阅读 · 0 评论 -
飞鸽传书实现原理
局域网聊天软件飞鸽传书是目前比较流行的局域网即时通讯软件,由于历史悠久,它具有比较多的用户。 因为 FreeEIM 的实现原理和飞鸽传书差不多,希望广大用户了解其原理后,在使用时更加得心应手。 程序启动时先读取用户配置文件,一般是"*.ini"格式,然后,使用Winsock的广播消息给整个局域网发送一个数据包,这时候,如果其他电脑已经运行了飞鸽传书,那么他收到这个包后,会将包的转载 2014-05-06 20:44:45 · 4452 阅读 · 0 评论 -
wav文件格式分析详解
一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVEChunk, Format Chunk, Fact Chunk转载 2014-03-31 16:48:40 · 959 阅读 · 0 评论 -
MFC - m_pMainWnd
CWinThread::m_pMainWnd 该成员变量去存储你的线程主窗口对象。当和m_pMainWnd 相关的窗口被关闭后,MFC会自动终止你的线程。如果该线程是应用程序主线程,程序也将会被终止。如果该数据成员为NULL,应用程序CWinApp对象的主窗口将用来决定什么时候去终止线程。m_pMainWnd是一个CWnd*类型的public变量。 很明显,你需要在重载转载 2014-05-06 09:31:51 · 1803 阅读 · 0 评论 -
setsockopt函数
之前一直没明白setsockopt的作用。原来是用来设置socket的属性。setsockopt设置SO_REUSEADDR。socket关闭之后并不会立即收回,而是要经历一个TIME_WAIT的阶段。windows下最多可以达到4分钟。所以在这个时候对这个端口进行重新绑定就会出错。所以需要先设置 SO_REUSEADDR.或者在closesocket的时候,使用s转载 2014-05-07 23:21:49 · 1284 阅读 · 0 评论 -
窗口指针 和 窗口句柄 有什么区别
句柄是指针的“指针” 指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直接操作时,可以使用Globa转载 2014-05-09 13:26:26 · 2722 阅读 · 0 评论 -
MFC中去掉bmp图片的背景色
以下代码是本人从网上找的,和大家分享一下^(note:)这是去掉背景色绘制BMP图片的代码void TransparentBitmap(HDC hdc, HBITMAP hBitmap, int xStart, int yStart, int xadd , int yadd , COLORREF cTransparentColor) { BITMAP m_bm;转载 2014-05-10 22:46:43 · 4547 阅读 · 0 评论 -
C/C++ 中的0长数组(柔性数组)
在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的。但是,GUN中却允许使用,而且,很多时候,应用在了变长结构体中,如:StructPacket{Int state;Int len;Char cData[0]; //这里的0长结构体就为变长结构体提供了非常好的支持}; 首转载 2014-05-24 23:59:25 · 599 阅读 · 0 评论 -
MFC -- radio button 的用法
本文转自http://cao416451347ming.blog.163.com/blog/static/1154556162009102795016258/先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种转载 2014-05-25 00:00:49 · 615 阅读 · 0 评论 -
bind()的作用到底是什么
bind()就是把一个指定的端口分配给要bind的socket。 以后就可以用这个端口来“听“网络的请求。bind()用于server端,一般端口都是well known,以便于提供服务。 端口分配后,其他socket不能再用这个端口。相当于告诉client端“要请求服务,往这个端口发“。 client端不用bind,每建一个socket系统会分配一个临时的端口,用完后再释放。谁叫它是client转载 2014-05-07 15:27:20 · 3564 阅读 · 0 评论 -
LPNMITEMACTIVATE 未定义
LPNMITEMACTIVATE 未定义 在windows Ce 5.0中用C++开发程序在ListCtrl中使用(通过缺省代码自动添加的例如:NM_CLICK) LPNMITEMACTIVATE,编译时提示"LPNMITEMACTIVATE" 未定义 网上说的很少,下面是解决方法: LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHD转载 2014-05-17 12:09:47 · 1250 阅读 · 0 评论 -
MFC创建模态对话框与非模态对话框 DoModal Invalidate
创建模态对话框CDialog::DoModalvirtual int DoModal();返回值:整数值,指定了传递给CDialog::EndDialog 的nResult参数值。该函数用于关闭对话框。如果函数不能创建对话框,则返回-1;如果出现其它错误,则返回IDABORT。说明:调用该成员函数使用模态对话框并返回对话框结果。当对话框处于活动状态时,该函数转载 2014-05-18 08:19:45 · 1124 阅读 · 0 评论 -
vc6.0 中快速移除断点的方法
方法一:(有点笨)如果你在调试时在代码中添加了很多断点,调试完了却想要移除,这时不必要逐个移除,这里给大家一个更快捷的小技巧:先全选,然后按删除Delete,再Ctrl+Z撤消,这时断点都消失了~~~原创 2014-05-07 10:44:27 · 2715 阅读 · 0 评论 -
MFC中定时器的使用
巧妙地使用定时器能达到意想不到的效果,写界面的时候能实现渐变,也能帮助多线程控制等我们知道,在VC的MFC中,已经为我们封装好了很多全面和强大的函数集,所以在MFC编程时,巧妙地调用MFC函数库可以为我们省去很多麻烦。其中定时器也可以在MFC程序中很好地利用。在MFC中和定时器相关的有三个函数:1.设置定时器(定义一个定时器的属性):SetTimer( UINT nIDEvent,转载 2014-05-05 16:36:45 · 769 阅读 · 0 评论 -
在vc中修改一个已经定义好的类的名称
1、在.h和.cpp文件中将类名查找替换成新类名2、关闭工程,删除*.clw和*.ncb文件3、打开工程这是网上的步骤,其实他说的在.h和.cpp文件中ctrl+h查找替换所有的东西是指在所有的.h和.cpp中。查找替换的时候最好选择Match whole word only和Replace all.然后在源文件夹下吧要改的那个类的.cpp名和.h名都改掉,把.clw和转载 2014-05-05 09:37:37 · 1956 阅读 · 0 评论 -
socket(AF_INET,SOCK_RAW,IPPROTO_IP)的意思
这是winsock2.h里的定义。/** Protocols*/#define IPPROTO_IP 0 /* dummy for IP */#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */#define I转载 2014-05-07 19:00:14 · 11961 阅读 · 0 评论 -
字符集编码(GBK,BIG5,UNICODE等)与C++的string/wstring .
字符集编码(GBK,BIG5,UNICODE等)与C++的string/wstring分类: C++ 2012-07-11 21:56 1188人阅读 评论(0)收藏 举报c++string存储语言扩展互联网目录(?)[+]GBKBIG5等字符集编码范围的具体说明一预备知识二字符集三编码四如何判断字符集字符转载 2014-07-12 09:32:27 · 1064 阅读 · 0 评论 -
bmp 位图的数据结构分析
1.位图和调色板的概念如今Windows(3.x以及95,NT)系列已经成为决大多数用户使用的操作系统。它比DOS成功的一个重要因素是它可视化的漂亮界面, 例如你可以在桌面上铺上你喜欢的墙纸。那么Windows是如何显示图象的呢?这就要谈到位图(Bitmap)。 我们知道,普通的显示器屏幕是由许许多多的点构成的,我们称之为象素。显示时采用扫描的方法:电子枪每次从左到右扫描一行, 为每个象素转载 2014-03-31 17:05:20 · 1037 阅读 · 0 评论