- 博客(33)
- 资源 (1)
- 收藏
- 关注
转载 在VS2005/2008中字符串编码问题的解决及字符串和数值类型常用的转换方法
<br />在VS2005/2008中,c++对字符串的处理已经默认采用了unicode版本了。Unicode可以使你的程序能够更全面的支持多国语言文字,即使在英文,日文等系统下也不会出现乱码。而且NT内核基于Unicode,可以减少了系统的编码转换开销,提高程序运行速度,并且可以支持更多的微软新推出的仅支持Unicode的API。但是有可能会造成在95/98下程序运转不正常。写代码时应注意:1:字符串前要加上_T或者_TEXT.比如:_T(“dadad”);2:将char换成TCHAR (unsigned
2010-07-31 10:48:00
2375
转载 VC6到VS2005中的转换
<br />1、 error C2668: 'sqrt' : ambiguous call to overloaded function<br /> 在VS2005中存在sqrt函数的重载。当编译器看到sqrt(int)时,找不到相应的函数,此时存在sqrt(float)和sqrt(long double)两个函数,编译器不知道程序员需要哪个函数,就会出现错误。可以使用sqrtf( )代替。<br /> 2、 error C2039: 'ReadHuge' : is not a member of
2010-07-29 21:48:00
879
转载 C++: VC6转VC8出现问题:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”
<br />C++: VC6转VC8出现问题:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”<br />其实还可能出现其它类似的问题,如:<br />error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”<br />error C2039: “strcpy”: 不是“ATL::CStringT<BaseType,StringTraits>”的成员<br />但是程序在VC6下编译得
2010-07-29 21:47:00
2841
1
转载 VC6.0 转 VS2005
AutoPDMS8.0源码使用高版本ObjectARX(2004/2007)编译的总结以下是引用uesoft在2007-11-21 15:14:29的发言:原文作者:杨志军,长沙优易软件开发有限公司CAD部AutoPDMS8.0源码使用高版本ObjectARX(2004/2007)编译的总结一、开始编译之前1. ObjectARX 2002工程向ObjectARX 2004工程升迁时的准备工作1.1 编译工具AutoPDMS8.0是在VC 6.0下开发的,使用ARX 2002(含)以下的版本时,用VC 6.
2010-07-29 21:45:00
4851
转载 链接警告:warning LNK4070 :/OUT...
<br /><br />dllD.exp : warning LNK4070: /OUT:dll.dll directive in .EXP differs from output filename "Debug/dllD.dll"; ignoring directive<br /> 我在DLL项目中遇到了,因为要对Debug版和Release版分别指定不同的输出文件名。对Debug版,我指定输出文件为dllD.dll,对Release版指定为dllR.dll。<br /> 解决
2010-07-29 18:21:00
4432
转载 使用AcGiTextStyle获得MTEXT的准确的宽度
<br /> 由于使用AcDbMtext的extents()方法,只能得到MTEXT的外框,得不到字体的准确宽度,下面是用AcGiTextStyle的解决方法,得到准确的字体宽度。 <br /><br /><br />HOW TO GET A TEXT STRING'S ACTUAL WIDTH <br />Product AUTOCAD Author LEE,HENRY <br />Date 26-MAR-99 Document ID 29095 <br />Expiration date Attach
2010-07-20 17:30:00
2765
原创 写AcEdJig类的一点心得
很不幸的,今天被老大训导了,但也因为学到不少东西:AcGePoint3d (AcGePoint2d )转换 ads_point 用:asDblArray函数。ads_point 转换AcGePoint2d 用asPnt2d(const double &pnt) 或aspnt3dacdbUcs2Wcs(ptAds, asDblArray(m_ptStart) ,false), 是表示在CAD中的转换成常用坐标系WCS 进行转换使用AcDbPolyline类时,必须用到的函数有: m_pEntity->set
2010-07-19 16:21:00
7134
2
原创 常用选择集使用及判断实体类型
<br />ARX中常用的选择实体的函数有几种:<br />1、acedSSGet<br /> 相应的函数用到的函数有:acedSSLength 、acedSSName、acdbGetObjectId、acdbOpenAcDbEntity。。。acedSSFree<br /> 使用此数函数,最后必须用acedSSFree释放其选择集内存。<br />2、acedEntSel<br /> <br />各自用法的源代码如下:<br />1、acedssGet<br />ads_name ssName;
2010-07-14 09:31:00
6114
原创 判断字符是否为数字字符
<br />BOOL CDlgCADJSQ::IsNumeric(CString str){ int Length = str.GetLength(); int i; char ch; for(i=0; i<Length;i++) { ch = str[i]; if(i=='0' && ch=='-') continue; if(ch=='.') continue; if(ch<'0') return FALSE; if(ch>'
2010-07-14 09:01:00
957
原创 创建非模态对话框
手工加如下消息(cpp文件):BEGIN_MESSAGE_MAP(CDlgCADJSQ, CDialog) //{{AFX_MSG_MAP(CDlgCADJSQ) ON_MESSAGE(WM_ACAD_KEEPFOCUS,OnAcadKeepFocus) //}}AFX_MSG_MAPEND_MESSAGE_MAP() LONG CDlgCADJSQ::OnAcadKeepFocus(UINT,LONG){ return 1;} .h文件中,添加:protected: //
2010-07-14 08:57:00
1331
1
原创 得到ARX程序当前的路径
BOOL Commonlib::GetArxPath(CString &path){ CString ArxPath; ACHAR modulePath[512];//取应用程序路径 //CString FileName = acedGetAppName(); //功能与下个函数重复 DWORD pathLength = GetModuleFileName(_hdllInstance, modulePath, 512); if (pathLength) { ArxPath
2010-07-06 09:24:00
2308
1
原创 在ARX中自动新建DWG文件
<br />代码其实很简单 如下:<br />int Commonlib::CreateNewDwg(){ CString acadPath; GetAcadPath(acadPath);//得到CAD路径 CString t = "acadiso.dwt"; t.Format("%s//Template//acadiso.dwt",acadPath); acDocManager->appContextNewDocument(t.LockBuffer()); return 1;
2010-07-06 09:17:00
3081
原创 ADO的学习-2
<br /> 俺的数据库连接终于完成了。不过,是看懂了源代码的使用方法。 呵呵。 直接复制粘贴过来的而已。 俺用代码从不局限于是否是自己的写的,只要能帮我完成我要完成的功能就行。 <br /> <br />再过几天俺的专业课就要考试了。
2010-07-04 18:02:00
418
原创 ADO的学习-1
今天主要用到数据库方面的功能:首先从系统数据库(Surport.mdb)读相关数据到界面,将界面上的数据保存到用户数据库(新建工程后系统自己生成的数据(标准图数据库.mdb),再一次打开界面时,就需要从“标准图数据库.mdb”读出数据,而非support.mdb。开发环境:VC6.0,数据库语言采用ADO 与SQL语言。由于以后未接触过数据库编程,查网络资料,整理如下(未完成):一、ADO的使用方法: 1、首先加入ADO支持库 #import "c:/program files/common fil
2010-07-03 13:28:00
494
转载 简述位操作符
简述位操作符额,似乎这不应该由我来写,不过既然已经开始写了,那就把它完成好了~ 大家都知道,数据在计算机中是以二进制的方式进行储存,而二进制只用0和1来表示数,如果对应成真值,则是True或False 。0和1往往给人一种简谐美的感觉,正如莱布尼茨所说,他从0和1中看到了宇宙的创生。额,似乎跑题了,拉回来~ 而位操作符则是用来通过对存储的二进制数操作的一些符号。 PS:如非特殊声明,以下
2010-03-08 10:13:00
681
转载 C++位操作
顾名思义,按位运算符允许按照位来操作整型变量。可以把按位运算符应用于任意signed和unsigned整型,包括char类型。但是,它们通常应用于不带符号的整型。 这些运算符的一个常见应用是在整型变量中使用单个的位存储信息。例如标记,它用于描述二进制状态指示符。可以使用一个位来描述有两个状态的值:开或关、男或女,真或假。 也可以使用按位运算符处理存储在一个变量中的几个信息项。例如,颜色值常常记录为
2010-03-08 10:12:00
658
转载 C++位操作
C++位操作包括两种:传统的C语言方式的位操作和C++中利用bitset容器的位操作 一、传统的C方式位操作:1.基本操作: 使用一个unsigned int变量来作为位容器。2.操作符:| 按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。& 按位与操作符::resul
2010-03-08 09:59:00
862
1
转载 各进制转换方法
计算机内部采用二进制的原因 (1)技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。(2)简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。(3)适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。(4)易于进行转换,
2010-03-08 09:57:00
1390
转载 谈我对攻读计算机研究生的看法(转)
就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计划上就没有把你往这方面带。当然能不能更上一层楼最终还是完全取决于你自己。需要特别说明的是,工作经验并不一定等于开发经验,我见过很多工作2-3年的人,但是没有一
2010-03-06 17:15:00
416
转载 CFileDialog 的使用
CFileDialog 文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRI
2010-03-06 10:08:00
482
转载 Visual C++/MFC入门教程(四)
在以后的章节4.D 利用AppWizard创建并使用ToolBar StatusBar Dialog Bar会给出使用的方法。 4.C Dialog Bar Dialog Bar类似一个静态的附在框架窗口上的对话框,由于Dialog Bar可以使用资源编辑器进行编辑所以使用起来就很方便,在设计时就可以对Dialog Bar上的子窗口进行定位。用于显示一些提示字符。MFC中使用CD
2010-03-06 09:18:00
2026
转载 Visual C++/MFC入门教程(三)
3.5 利用序列化进行文件读写 在很多应用中我们需要对数据进行保存,或是从介质上读取数据,这就涉及到文件的操作。我们可以利用各种文件存取方法完成这些工作,但MFC中也提供了一种读写文件的简单方法——“序列化”。序列化机制通过更高层次的接口功能向开发者提供了更利于使用和透明于字节流的文件操纵方法,举一个例来讲你可以将一个字串写入文件而不需要理会具体长度,读出时也是一样。你甚至可以对字符串数组
2010-03-06 09:06:00
996
转载 Visual C++/MFC入门教程(二)
此外系统中还拥有一些库存GUI对象,你可以利用CDC::SelectStockObject(SelectStockObject( int nIndex )选入这些对象,它们包括一些固定颜色的刷子,画笔和一些基本字体。 BLACK_BRUSH Black brush. DKGRAY_BRUSH Dark gray brush. GRAY_BRUSH Gray brush.
2010-03-06 08:45:00
1274
转载 Visual C++/MFC入门教程(一)
VC开发指南 1.1 如何学好VC 这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。万事开头难,为了帮助朋友们更快的掌握VC开发,下面我将自己的一点体会讲一下: 1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字符界面程序的编写。这样做的
2010-03-05 17:59:00
1733
转载 C++ 的各种文件读写操作总结
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1、基于C的文件操作;2、基于C++的文件操作;3、基于WINAPI的文件操作;4、基于BCB库的文件操作;5、特殊文件的操作。 壹、基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操
2010-03-05 17:40:00
836
转载 vc使用技巧集(对话框控件)
十五、设置控件字体颜色:(例如STATIC控件) 在OnCtlColor函数中添加如下代码:(可能需要选择STATIC的简单属性) if(nCtlColor==CTLCOLOR_STATIC) { pDC->SetTextColor(RGB(255,0,0)); pDC->SetBkColor(RGB(128,128,128));//设置文本背景色
2010-03-05 11:31:00
1195
转载 对话框编程(vc使用技巧集)
一、往基于对话框的程序添加菜单: [1] 先添加菜单(IDR_MENU1)资源,并加上需要的菜单项。 [2] 编辑对话框资源IDD_DLGMENUTOOLBAR_DIALOG的属性,在属性对话框中选择IDR_MENU1即可。 [3] 假如您不希望在对话框属性中直接设置菜单,而通过代码在程序中动态生成可以采用如下方法: 在CFileNameDlg类声名中添加成员变量CMen
2010-03-05 11:15:00
652
转载 VC中常用的20种方法
一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); 二、关闭CD_ROM mciSendString("Set cdAudio door closed wait",NULL,0,NULL); 三、关闭计算机 OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据
2010-03-05 10:38:00
431
转载 vc使用技巧集(三)
21、如何在对话框中从磁盘读出一个bitmap文件画在上面? BOOL CAboutDlg::OnInitDialog() { CDialog::OnInitDialog(); HBITMAP m_hBmp = (HBITMAP)::LoadImage(0, "D:////bitmap.bmp", IMAGE_BITMAP,
2010-03-05 10:28:00
539
转载 vc使用技巧集(二)
11、递归树void CTreeDataDlg::TreeAddSubTree(CString ParTree, HTREEITEM hPartItem){ //----------------使用到的变量进行定义---------- _RecordsetPtr m_pTreeRecordset; //用于创建一个查询记录集 _variant_t v
2010-03-05 10:11:00
473
转载 vc使用技巧集(一)
1、控件随窗口大小而自动缩放 void CDVRDlg::OnSize(UINT nType, int cx, int cy) { RECT rcClient; if (GetDlgItem(IDC_STATIC_aa)) { GetClientRect(&rcClient); rcClient.left+=10; rcC
2010-03-05 09:46:00
526
转载 VC++ List Ctrl控件
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格: LVS_IC
2010-03-05 09:19:00
1196
转载 C++操作符汇集
1. + 加 x=y+z; 2. - 减 x=y-z; 3. * 乘 x=y*z; 4. / 除 x=y/z; 赋值运算符 5. = 赋值 x=10; 6. += 赋值与和 x+=10;(等于xx=x+10;) 7. -= 赋值与减
2010-03-05 09:12:00
368
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人