基础知识
文章平均质量分 70
zyrr159487
这个作者很懒,什么都没留下…
展开
-
error C4430: 缺少类型说明符 - 假定为 int
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int编程语言 2010-03-30 16:20:12 阅读254 评论0 字号:大中小 c:\evan\workspace\1\1\netwowkippack.h(50) : error C2146: 语法错误 : 缺少“;”(在标识符“nSourPort”的前面)c:\evan\workspace\1转载 2011-11-03 14:53:52 · 11507 阅读 · 4 评论 -
绘制多边形
CBPoint FirstPt;FirstPt = EndPt;pDC->MoveTo((int)(FirstPt.x),(int)( FirstPt.y));double fsin = sin(TWO_PI / iPolygonsides);double fcos = cos(TWO_PI / iPolygonsides); for (int i = 1 ; i < iPolygons原创 2011-12-27 13:23:30 · 680 阅读 · 0 评论 -
ScrrenToClient
函数功能:该函数把屏幕上指定点的屏幕坐标转换成用户坐标。函数原型:BOOL ScreenToClient(HWND hWnd, LPPOINT lpPoint); BOOL ScreenToClient( HWNDhWnd, // handle to window LPPOINTlpPoint// screen coordinates );参数:hWn转载 2011-12-22 15:32:47 · 684 阅读 · 0 评论 -
VC++ 调用 C#生成DLL的两种方法
今年在C++调用对方用C#写的DLL时,遇到托管和非托管的问题。 原帖: http://topic.csdn.net/u/20110916/12/fcf63501-45ef-46d9-92d1-6ffa91086a80.html 以及参考文章: VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一转载 2011-12-22 09:18:11 · 3066 阅读 · 0 评论 -
doc,view,frame互相调用
在CSDN论坛闲逛时看到RT的一篇帖子,先收藏,并整理如下。访问应用程序的其它类 获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainW转载 2011-12-13 15:44:33 · 545 阅读 · 0 评论 -
命名规则
a 数组b BOOLby BYTEc charcb 字节计数cr 颜色cx,cy short x,y轴坐标长度值x,y short x,y轴坐标值dw DWORDfn 函数变量g_ 全局变量h 句柄i intm_ 类成员变量n short intp 指针l LONG lp 长指针s/str 字符串u UINT原创 2011-12-22 15:40:22 · 437 阅读 · 0 评论 -
SetCapture
函数功能: 该函数在属于当前线程的指定窗口里设置鼠标捕获。 一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。 意思是说,只要设置了SetCapture,所有鼠标的操作都会在调用该函数的窗口处捕捉到,包括该窗口以外的鼠标操作,你可以看到SetCapture有一个HWND类型的参数(API原型),就是标识这个窗口的,如果不执行这个函数你转载 2011-12-22 15:35:41 · 618 阅读 · 0 评论 -
MFC数组模板类CArray
MFC的数组类支持的数组类似于C++中的常规数组,可以存放任何数据类型。C++的常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。 MFC定义了数组模板类CArray,并针对各种常用变量类型定义了CByteArray,CWord转载 2011-12-21 16:37:30 · 1233 阅读 · 0 评论 -
CString与LPCWSTR的转化
问题起因: 在写WritePrivateProfileString写.ini配置文件时在msdn中看到,如果想要写得配置信息即时生效必须在之前使用WritePrivateProfileStringW来re-read一下目标.ini文件,其原文如下: // force the system to re-read the mapping into sha转载 2011-11-28 13:33:00 · 511 阅读 · 0 评论 -
VS2005设置可以在Release模式下调试( 图)
一、首先:从“配置管理器”中将项目配置成Release版:在下拉列表中选择了Release后,点击“关闭”即可。 见图-1 。 二、按Alt+F7:进入当前项目的属性设置:经过上面的设置,应该是“活动(Release)”,然后按下面的三个图示分别设置: 见图-2, 图-3, 图-4,OK!可以在Release版中进行调试转载 2011-12-21 11:38:48 · 1242 阅读 · 0 评论 -
CString ,BSTR ,LPCTSTR之间关系和区别
CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。 typedef OLECHAR FAR* BSTR; typedef const转载 2011-12-07 10:02:26 · 727 阅读 · 0 评论 -
Debug和Release之本质区别的讨论
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之转载 2011-12-21 14:09:04 · 544 阅读 · 0 评论 -
SetWindowRgn,可用于创建不规则窗口
函数功能描述:设置窗口区域.函数原型int SetWindowRgn( HWND hWnd, // 要设置其区域的窗口句柄 HRGN hRgn, // 区域句柄 BOOL bRedraw // 重画标志);参数hWnd要设置其区域的窗口的句柄.hRgn区域的句柄.该函数把窗口的区域设置成由此参数指定的区域.系统将仅绘制窗转载 2011-12-12 11:34:29 · 1131 阅读 · 0 评论 -
绘制矩形时按下SHIFT则绘制正方形
//按下SHIFT时绘制正方形if(GetKeyState(VK_SHIFT) & PRESSED){ double dDistX = tempPoint.x - StartPt.x; double dDistY = tempPoint.y - StartPt.y; //判断较短的边 if(fabs(dDistX) < fabs(dDistY)) {原创 2011-12-27 13:25:32 · 1556 阅读 · 0 评论 -
添加lib库的方法
方法一 静态加载:点击菜单命令 “项目/属性”,弹出项目属性对话框; 或者在解决方案视图或类视图中,右击项目名称,选“属性”,弹出项目属性对话框;在弹出对话框的活动配置中,选择 “配置属性/链接器/输入/附加依赖项”,即可输入待加入的lib库文件,添加完毕点击“应用”或“确定”按钮。如果要对所有的配置添加lib库文件,可 先将活动配置切换为“所有配置”。 在“配置属性”---“原创 2011-12-27 13:48:38 · 1001 阅读 · 0 评论 -
注册表的基本知识
从Windows 95开始,微软就在Windows操作系统中引入了注册表(REGISTRY)的概念。作为Windows系统的核心数据库,注册表中存放着系统自身及应用软件的各种参数,直接控制着Windows的启动和运行、硬件驱动程序的装载以及应用程序的正常运行,我们通常所作的系统优化或者系统参数的修改都要涉及到对注册表的修改,但如果注册表由于某种原因受到了破坏,就会导致系统出现各种异常的故障,甚至会转载 2012-01-05 11:55:17 · 971 阅读 · 0 评论 -
执行添加删除操作时提示代码元素类名是只读的
基本按下列步骤能解决:1、关闭解决方案,删除工程目录里的.ncb文件,再重新打开基本上就行了。2、打开Resourse.h文件看一下,可能有两个宏对应同一个值,删除多余的就行了。另外,一个可能的原因是头文件和CPP文件都必须从服务器中CHECK OUT转载 2011-12-30 15:59:46 · 529 阅读 · 0 评论 -
使用IE8后 MFC添加类报错
Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1000]"1207"=dword:00000000添加以上代码到注册表到记事本,改为REG,运行即可转载 2011-12-30 16:00:28 · 566 阅读 · 0 评论 -
关于WideCharToMultiByte()函数
函数功能:该函数映射一个unicode字符串到一个多字节字符串。 函数原型: int WideCharToMultiByte( UINT CodePage, DWORD dwFlags, LPWSTR lpWideCharStr, int cchWideChar, LPCSTR lpMultiByteStr, int cchMultiByte,转载 2011-12-07 11:14:07 · 2163 阅读 · 0 评论 -
图像编程常识
1 载入ICONHICON hicon = NULL;hicon = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_LOCK));((CButton*)GetDlgItem(IDC_KEEPRATIO))->SetIcon(hicon);2 平面内坐标旋转公式任意一点A(ax,ay),按旋转中心点(x,y)逆时针旋转原创 2011-12-29 14:00:54 · 636 阅读 · 0 评论 -
判断点是否在不规则区域范围内
发布了一个帖子向坛友请教,整理如下1原帖http://topic.csdn.net/u/20110711/13/01cb1ff3-162c-4e5a-8220-4be89964f1b7.html2方法方法①可以先将你的不规则图形转换为区域(Region),然后可以用函数PtInRegion来判断。CreatePolygonRgn()PtInRegion()方法原创 2012-01-10 11:53:01 · 2543 阅读 · 0 评论 -
注册表读写字符串类型数据
方法1 //读取键值 DWORD lValue = 256; TCHAR *pBuf = new TCHAR[lValue]; if (ERROR_SUCCESS == RegQueryValueEx(theKey, TEXT("savePath"), NULL, NULL, (LPBYTE)(LPCTSTR)pBuf, &lValue)) m_s原创 2012-01-10 11:09:15 · 1633 阅读 · 0 评论 -
"automation服务器不能创建对象"解决方法.
问题:新建一个项目,系统报告“automation服务器不能创建对象”错误。解决方法:运行regsvr32 scrrun.dll 即可原创 2012-01-10 10:15:19 · 723 阅读 · 0 评论 -
CBITMAP转为BYTE数组
//用GetBitmap获得图像数据大小 //用GetBitmapBits获得数据数组 BITMAP temBmp; pBmp->GetBitmap(&temBmp); iDataSize = ((temBmp.bmWidth + 31 ) / 32 * 4) * temBmp.bmHeight;//图像数据大小 pBmp->GetBitmapBits(iDataSize, p原创 2012-01-10 11:48:08 · 1731 阅读 · 0 评论 -
HBITMAP和CBitmap的互相转换
1 HBITMAP转成CBitmapHBITMAP hBmp; 方法①CBitmap* pBmp = CBitmap::FromHandle(hBmp); 方法②CBitmap bmp; bmp.Attach(hBmp); 方法①转换出来的临时CBitmap对象似乎并不是可靠的!MSDN上说这个临时只在某一时间段内有效。等到某个空闲的时候,这个临时CBit转载 2011-12-29 13:59:37 · 3960 阅读 · 0 评论 -
VS2008 "当前不会命中断点。源代码与原始版本不同"解决方法
全选CPP文件内容,选择 “编辑”-“高级”-“设置选定内容的格式”,保存,重新编译。转载 2012-01-10 11:30:17 · 1004 阅读 · 0 评论 -
WinAPI: ShellExecute - 打开外部程序或文件
ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open、print} FileName: PChar; {指定要打开的文件或程序} Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil} Directory: PChar; {转载 2011-12-15 16:44:35 · 833 阅读 · 0 评论 -
VB下继承VC接口生成COM组件
在VB下调用VC写的COM动态库,并生产COM组件。程序很简单,只是当时写的时候因为对VB语言的不熟悉,就弄得很困难。此处是原帖:http://topic.csdn.net/u/20110313/09/f2b56748-3cf8-4b0d-91cd-ee9035f3c130.htmlPublic Class Css Implements laserca.ICAMenu'接口继承原创 2011-12-12 11:23:24 · 853 阅读 · 0 评论 -
三角函数公式
pi 是派的意思(如果你没有切换到公式版本)^是次方的意思,常见角度sin(pi/6)= 1/2 sin(pi/3)=根号3 / 2sin(pi/2)=1sin(pi)= 0cos(pi/6)=根号3 / 2cos(pi/3)=1/2cos(pi/2)=0cos(pi)=-11.诱导公式sin(-a)=-sin(a)cos(-a)=cos(a)sin(pi原创 2011-12-12 11:17:55 · 2213 阅读 · 0 评论 -
C++基本数据类型与输入输出
每种语言都有自己的一套符号,符号是组成程序的基本单位,它是由若干字符组成的具有一定意义的最小词法单元,如标识符、关键字、运算符、分隔符、常量、注释符等。这里组成符号的字符必须是这种语言字符集中的合法字符,在C++中规定了一个自己的字符集。 2.1 C++字符集字符是可以区分的最小单位,也是组成词法符号的基本单位。C++的字符由下列字符组成。1、大小写英文字母 a~z,A~Z转载 2011-12-02 16:18:51 · 5039 阅读 · 0 评论 -
关于图像基本常识
1. 位图图像 位图图像也叫作栅格图像,Photoshop 以及其他的绘图软件一般都使用位图图像。位图图像由像素组成,每个像素都被分配一个特定位置和颜色值。在处理位图图像时,您编辑的是像素而不是对象或形状,也就是说,编辑的是每一个点。 位图图像与分辨率有关,即在一定面积的图像上包含有固定数量的像素。因此,如果在屏幕上以较大的倍数放大显示图像,或以过低的分辨率打印,位图图像会出现转载 2011-11-25 15:22:41 · 915 阅读 · 0 评论 -
位图操作集合
一、 显示位图在Visual C++6.0中,显示位图的方法及过程如下: 1. 显示程序资源中的位图(位图的所有数据均存在于可执行文件中) (1)从资源中装入位图 ● 定义位图对象数据成员CBitmap m_Bitmap; ● 调用CBitmap成员函数LoadBitmap(),如m_Bitmap.LoadBitmap(IDB_BITMAP1); ● 传入LoadBit转载 2011-11-26 09:28:49 · 824 阅读 · 0 评论 -
添加winods临时字体的方法
1.使用 AddFontResource 把您的字体送入 Windows 字体列表。 例如:AddFontResource("c:\XX.ttf"); 这个函数在你的函数中只要调用一次就行了,这时系统的字体表中会增加该字体,注意这时加载的这个字体,在其他应用程序中也会看到, 所以记得要在退出程序调用 RemoveFontResource("c:\XX.转载 2011-11-28 14:01:58 · 2409 阅读 · 0 评论 -
MFC中设置对话框颜色、添加背景图片、添加音乐的方法
一、设置背景颜色的三种方法:1、我们知道程序在运行的时候会调用OnPain函数,那么我们可以在这里设置背景颜色。void CFlipCardsDlg::OnPaint() {if (IsIconic()) {//保持不变 } else { CRect rc; GetClientRect( &rc );// 获取客户区 CPaintDC dc(this);转载 2011-11-25 15:08:34 · 910 阅读 · 0 评论 -
文件夹的删除、重命名、移动、复制
说明:1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile2.每个函数都先拷贝了原来的路径,保证了路径是以2个\0\0结尾。(如果不以2个\0\0结尾,往往会出错)3.对于文件或文件夹都适用/*能产生对话框的标志:FOF_SILENT //progress dialo转载 2011-11-28 13:45:22 · 758 阅读 · 0 评论 -
用Visual C++实现注册表简单操作
对注册表的编程要用到句柄,我们需要通过一个句柄访问注册表键值,当打开或创建一个键值的时候,会返回一个该键的句柄,并且调用和分析键和创建键值, 在分析和创建的同时需要传递句柄到函数。WINDOWS提供预定义的用语---根一级键的保留句柄,如 HKEY_CLASS_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USER等,这些都是与注册表 的根键相对转载 2011-12-05 13:29:36 · 673 阅读 · 0 评论 -
char*和CString转换
CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。(1) char*转换成CString 若将ch原创 2011-11-25 15:02:06 · 1019 阅读 · 0 评论 -
CAD颜色索引表到RGB颜色的转换
原始数据来源于:1 255 0 02 255 255 03 0 255 04 0 255 2555 0 0 2556 255 0 2557 255 255 2558 128 128 1289 192 192 19210 255 0 011 255 127 12712 204 0 013 204 102 10214 153 0 015 153 76 7616 127转载 2011-11-25 15:16:14 · 10898 阅读 · 6 评论 -
显示图形如何避免闪烁
显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。 MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。 我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈我的一些观点。 1、显示的图形为什么会闪烁?转载 2011-11-25 15:19:55 · 750 阅读 · 1 评论 -
CListCtrl简介
以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标转载 2011-11-25 15:28:05 · 519 阅读 · 0 评论