VC
文章平均质量分 70
wzk456
擅长嵌入式软硬件,MCU,VB,C#,C++
展开
-
CStdioFile
本文讲解怎样利用CStdioFile对文件进行读写操作。//-----------------------------------------------// CStdioFile写文件示例// 实现功能:1.如果文件存在,在文件末尾添加内容// 2.如果文件不存在,则创建文件并添加内容//---------------------------------------原创 2017-07-07 17:10:00 · 1328 阅读 · 0 评论 -
怎样在vs2010里面实现两个编辑控件对应一个消息处理函数
本上介绍的实现方法是采用的vc6.0,自己试了一遍,在vc6.0下可以采用。但是在vs2010里面却不行,实际上按照wizard确实不行,但是我们可以直接更改代码,图形UI解决不了的问题,我们可以手动更改代码,其实很简单。新建一个对话框风格的mfc程序,名为Ctest,所以系统会自动生成:CCtestDlg类,对应的文件为:CtestDlg.cpp和CtestDlg.h比如原创 2017-06-22 14:37:48 · 713 阅读 · 0 评论 -
VC编程操作Excel
1. 在VC6上验证通过!建立VC工程,本章说明一般是针对MFC2.加入Excel的库文件.从classwizard中add class处from type library,去office的安装目录下引入excel.exe(这是office 2003的选择,其他版本都是用olb文件),服务器就算引入了,这时会弹出对话框,要求加入一些类,这些类都是一些接口,里面有大量的方法,原创 2017-07-10 17:42:23 · 815 阅读 · 0 评论 -
c++ GDI 中SelectObject使用方法和注意事项
CPen* SelectObject( CPen* pPen );CBrush* SelectObject( CBrush* pBrush );virtual CFont* SelectObject( CFont* pFont );CBitmap* SelectObject( CBitmap* pBitmap );int SelectObject( CRgn* pR原创 2017-06-21 18:33:47 · 3410 阅读 · 1 评论 -
C++ UpdateData()
UpdateData()参数只有一个,默认为TRUE。UpdateData(TRUE)——刷新控件的值到对应的变量。(外部输入值交给内部变量)即:控件的值—>变量。UpdateData(FALSE)—— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)即:变量值—>控件显示。例如,窗口中用 DDX_Text(pDX, IDC_EDIT1, m_userco原创 2017-06-21 18:30:36 · 1778 阅读 · 0 评论 -
_itoa atoi、atof、itoa、itow _itoa_s 类型转换使用说明
_itoa功能:把一整数转换为字符串用法:char * _itoa(int value, char *string, int radix); 详细解释: _itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.其中value为要转化的整数, radix是基数的意思,即先将value转化为radix进制的数,原创 2017-06-21 18:24:26 · 558 阅读 · 0 评论 -
例程 【C++】MFC 创建对话框,实现对“学生课程成绩”的管理
运行环境:VC6.0具备知识:对MFC的控件有一定的了解,包括图像列表、列表控件等。实现功能:单击下图中的“学生课程成绩”按钮,弹出“学生课程成绩”对话框,单击“添加”按钮,学生课程成绩添加到列表控件。若选中列表项,“修改”按钮由原来的禁用变成可用,单击“修改”按钮,则弹出的“学生课程成绩”对话框中的“添加”按钮标题变成“修改”,单击“学生课程成绩”对话框中的“修改”按钮,该列表项原创 2017-06-21 18:23:27 · 3843 阅读 · 2 评论 -
vc中GetDlgItem用法
在MSDN中定义为:HWND GetDlgItem(HWND hDlg, // handle to dialog boxint nIDDlgItem // control identifier);其中HWND代表当前窗口的句柄,其实就是m_hWnd,int 代表你想要得到的控件句柄的名字比如我们有个编辑框为IDC_EDIT_TEST,则这里面的值就是ID原创 2017-06-21 18:21:09 · 3833 阅读 · 0 评论 -
string.Format字符串格式说明
先举几个简单的应用案例:1、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20)默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数string.Format("{0:C1}",23.15) 结果为:¥23.2 (截取会自动四舍五原创 2017-06-21 18:18:00 · 482 阅读 · 0 评论 -
UpdateWindow
只将窗口显示区域标记为无效以产生WM_PAINT消息,对于某些应用程序来说也许不是完全令人满意的选择。在呼叫InvalidateRect之后,Windows将WM_PAINT消息放入消息队列中,最后由窗口消息处理程序处理它。然而,Windows将WM_PAINT消息当成低优先级消息,如果系统有许多其它的动作正在发生,那么也许会让您等待一会儿工夫。这时,当对话框消失时,将会出现一些空白的「洞」,程序原创 2017-06-22 15:04:32 · 635 阅读 · 0 评论 -
CDocument::SetModifiedFlag
CDocument类成员 CDocument::SetModifiedFlag void SetModifiedFlag(BOOL bModified = TRUE); 参数: bModified 文档是否被修改的标记。 说明: 在对文档作了修改之后调用该函数。连续调用以确保在关闭之前框架提示用户保存这些变化。通常使用bModified参数的原创 2017-06-22 16:15:53 · 1469 阅读 · 0 评论 -
对MFC中CDocument::UpdateAllViews的理解
对MFC中CDocument::UpdateAllViews的理解:void CDocument::UpdateAllViews(CView* pSender, LPARAM lHint, CObject* pHint) // walk through all views{ ASSERT(pSender == NULL || !m_viewList.IsEmpty()); PO原创 2017-06-22 16:18:10 · 1600 阅读 · 0 评论 -
CFileDialog使用总结
CFileDialog经常用,但经常忘,现归纳整理下,方便今后查询。例子:CFileDialog openDlg( TRUE, "Material File(*.material)|*.material", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Material File(*.material)|*.m原创 2017-07-07 11:13:34 · 253 阅读 · 0 评论 -
Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
方案1: 改变项目配置属性一种解决方案是改变基本运行时检查(changing the runtime checks in project settings):在菜单Project->Project properties-> C/C++ -> Code generation-> Basic Runtime checks --> change to 'Default',在中文版中是:项目-原创 2017-06-26 13:16:12 · 1425 阅读 · 0 评论 -
VC文档"最近使用的文档"列表LoadStdProfileSettings
在文档/视图中,打开菜单旁边的”最近使用列表“可以列出最近使用的文档名称,这对于加快程序的处理文档速度。在VC2008SP1中的效果如下:我们只要在应用程序类的InitInstance 函数中调用LoadStdProfileSettings()即可,函数原型如下:void LoadStdProfileSettings( UINT nMaxMRU = _AFX_原创 2017-06-23 16:54:37 · 1102 阅读 · 0 评论 -
VC INI文件读写 和 GetProfileString,WriteProfileString函数的使用
VC中用函数读写ini文件的方法 ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。[section]原创 2017-06-23 16:21:07 · 1003 阅读 · 0 评论 -
SetRegistryKey的作用
使用CWinApp类的WriteProfileString 、GetProfileString等函数。1、如果不调用SetRegistryKey(),CWinApp 会把信息保存系统目录的的Test.ini文件中(C:\Windows\Test.ini)2、如果调用SetRegistryKey(),CWinApp 会把信息保存系统目录的的注册表中 HKEY_CURRENT_USER原创 2017-06-23 16:14:11 · 820 阅读 · 0 评论 -
探索MFC全局函数-AfxGetApp()
MFC做到了从C/SDK开发Win32程序到利用OOP思想开发Win32程序的过渡,它的封装完美体现的C++的三大特性,提高了Win32程序的开发效率,但它的封装也使得本来清晰的脉络,变得晦涩起来。今天我们探究被微软冠以Afx前缀的全局函数AfxGetApp(),这个函数作用是获取当前应用进程的指针,确切的说是获取由CWinApp派生出类的对象,相信懂MFC的人都熟知,但作为全局函数的它是原创 2017-06-23 16:08:35 · 991 阅读 · 0 评论 -
AfxGetApp用法
AfxGetApp( )是全局的。AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。比如在全局函数中要向对话框中的列表写数据。void writeString(char* pString){ CWnd* pWnd = AfxGetApp()->GetMainWnd(); CMyD原创 2017-06-23 16:07:41 · 410 阅读 · 0 评论 -
防止C++程序重复运行的几种方法
今天给自己的程序加了防止重复运行的功能.用的是创建互斥量的方法,感觉还不错.下面的帖子转自http://bbs.cfan.com.cn/viewthread.php?tid=793295 有时候,为了某些要求,我们希望程序实例只运行一次。而在VB6中,我们可以很轻易的根据App.hPreInstance来判断程序是否已经运行。但是在C++中,这一切就变得不是那么容易。原创 2017-06-23 15:52:31 · 6056 阅读 · 0 评论 -
C++字符串格式化 sprintf、printf
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, a原创 2017-06-21 18:16:27 · 377 阅读 · 0 评论 -
MFC之COleVariant
COleVariant 本质上是一个枚举,用同一种类型来表达不同的子类型。如同boost中的variant。例子[cpp] view plain copyCOleVariant var(3.6f); float v = var.fltVal; CString str("testCOleVariant"); COleVaria原创 2017-07-10 17:49:59 · 688 阅读 · 0 评论 -
如何在项目中引入.h、.lib和dll、以及.cpp
一、如何在项目中引入.h、.lib和dll、以及.cpp 一直搞不清楚.h、.lib和dll在工程里怎么引入,稀里糊涂的。这次使用sqlite做个试验。 目录如下: .. include lib dll 工程\注意:工程是最原是的MFC标准项目,没有对环境变量做任何修改:原创 2017-06-19 19:16:06 · 1289 阅读 · 0 评论 -
如何在编译器(vs2010)里设置调用别人写好的lib和dll
这是网上找的,但是实际使用时,我只添加了红色矩形标注出来的3项就可以用*********************************************************************************补充1***********************************************************************原创 2017-06-19 19:14:23 · 357 阅读 · 0 评论 -
lib和dll的区别,生成
首先介绍下静态库(静态链接库,.lib文件),动态库*(动态链接库,.dll文件)的概念,首先两者都是代码共享的方式.静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件,这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝.即静态库中的指令都全部被直接包含在最终生成的EXE文件中了. 在VS原创 2017-06-19 19:12:57 · 260 阅读 · 0 评论 -
VC6如何使用VS2005中的CImage类功能2
由于VC6启动速度快,产生的执行代码小,还有可爱的类向导,所以许多C++程序员还工作在VC6环境中。但是我们想在VC6中用VS2005中的新功能怎么办呢?例如CImage类(有很强的图像处理功能).当然我们无法直接使用CImage了,经过我的思考和实践,以下方法是可行的:用VS2005生成一个CImage2005动态库,然后用VC6调用就可以了。DLL主要代码如下:Image200原创 2017-06-19 18:31:43 · 460 阅读 · 0 评论 -
VC6如何使用VS2005中的CImage类功能
VC6如何使用VS2005中的CImage类功能 由于VC6启动速度快,产生的执行代码小,还有可爱的类向导,所以许多C++程序员还工作在VC6环境中。 但是我们想在VC6中用VS2005中的新功能怎么办呢?例如CImage类(有很强的图像处理功能).当然我们无法直接使用CImage了,经过我的思考和实践,以下方法是可行的: 用VS2005生成一个CIma原创 2017-06-19 18:30:49 · 891 阅读 · 0 评论 -
C++中_T()与L的区别
字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。以下是别人的总结:原创 2017-06-19 14:05:57 · 598 阅读 · 0 评论 -
我推荐的一些C\C++书籍
人们常常问我有什么C++和编程的书籍推荐,也许是因为我在PowerDNS有一个关于“编写可读性良好的C++代码”的演讲。这篇博文可以作为我对上述问题的一个回答,同时也包含了一些更广泛的笔记编程。如果你有任何补充或喜欢的书籍但是我没有提到,请给留言提示,我打算一有新书就更新这个页面。第一个注意项:如果你打算学习C++,请务必学习最新版的C++ 2011。这个版本的C++移除了许多由C++强大原创 2015-03-13 22:27:53 · 462 阅读 · 0 评论 -
【Programming Style】新創公司不用做 Code Review?
如果你正處在一家軟體開發的新創公司,你如何定義你產品的 code 是「好的」?我常聽到大家說,只要產品 work,程式就是好的!如果事情這麼簡單,工作就容易多了。但事實其實相距甚遠。大多數的工程師都知道 code review 的重要性,至少,他們是這麼認為的;然而大多數的團隊卻沒有定期去執行 code review。如果我們都知道它有多重要,為什麼沒有更多團隊這麼做呢?原因是,大转载 2014-04-17 23:06:48 · 612 阅读 · 0 评论 -
VC DLL文件无法生成LIB 解决方案
VC中WIN32项目,DLL时:1,在建项目时,不选择空项目,而选择导出符号(勾选),会自动导出,生成lib文件;2,当选择空白项目时,需要在工程中添加模块定义文件:LIBRARY EXPORT func11、在所建工程上单击鼠标右键,在弹出的右键菜单中选择“添加-->新建项....---->模块定义文件”,在该模块定义文件中写导出函数表原创 2017-06-20 15:28:20 · 1242 阅读 · 0 评论 -
C++生成和使用dll和lib
dll和lib:动态链接库(dll)是一个可以被其他应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。和可执行文件(exe)非常类似,区别在于dll中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。静态链接库(lib) 包含函数代码本身,在编译时直接将代码加入程序当中。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪原创 2017-06-20 15:31:12 · 5714 阅读 · 0 评论 -
lib 和 dll 的区别、生成以及使用详解
首先介绍一下静态库(静态链接库)、动态库(动态链接库)的概念,首先两者都是代码共享的方式。静态库:在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中,这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。即静态库中的指令都全部被直接包含在最终生成的 EXE 文件中了。在vs中新建生成静态库的工程,编译生成成功后,只产原创 2017-06-20 15:34:03 · 201 阅读 · 0 评论 -
VARIANT、COleVariant 和_variant_t
在OLE、ActiveX和COM中,VARIANT数据类型提供了一种非常有效的机制,由于它既包含了数据本身,也包含了数据的类型,因而它可以实现各种不同的自动化数据的传输。下面让我们来看看OAIDL.H文件中VARIANT定义的一个简化版:struct tagVARIANT { VARTYPE vt; union { short iVal; // VT_I2. long原创 2017-07-10 17:48:18 · 482 阅读 · 0 评论 -
MFC的使用 在共享DLL中使用MFC 和在静态库中使用MFC的区别
使用VS2010,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC 第一种顾名思义。 第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,所以EXE文件较小,但是运行时要求系统中要有相关的DLL文件。 第三种是将DLL原创 2017-06-20 18:00:57 · 553 阅读 · 0 评论 -
Visual Studio 代码生成 运行时库的选择
运行时库的选项有:多线程(/MT)、多线程调试(/MTD)、多线程DLL(/MD)、多线程调试(/MDd) 有时调用外部的一些库,这个选择不对,老编译不通过;c运行时库 库文件single thread(static link) ML libc.libd原创 2017-06-20 17:50:10 · 412 阅读 · 0 评论 -
VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
问题:VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等的解决方法 解决方法:1.将这些dll打包,和应用程序一起发布;2.采用MFC静态编译; 附1:VS2010中静态编译设置方法 使用VS2010编译的程序在windows xp中运行时 经常会出现找不到 相关的DLL文件,我们可以原创 2017-06-20 17:40:15 · 828 阅读 · 0 评论 -
vs2008设置lib和h文件路径
一、只对当前工程起作用的设置1. 设置头文件包含路径 工程上右击,选择“属性”,打开工作属性页 “配置属性”-->“常规”-->“附加包含目录”2. 设置lib文件包含路径 工程上右击,选择“属性”,打开工作属性页 A“配置属性”-->“连接器”-->“常规”-->“附加库目录”, 注意这只是添加了目录而已 B“配置属性”-->“连接器原创 2017-06-20 16:02:08 · 631 阅读 · 0 评论 -
vs2008下设置.h, .lib和 .dll 的路径配置全图及其意义
文件夹: 类型文件include: .h (头文件)lib: .lib (库)前面二者在vs2008中通过属性来配置。bin: .dll (动态链接库)动态链接库是通过系统路径来配置的。 添加库(libs)文件目录 方法 1:项目->属性->配置属性->连接器->常规->附加库目录” 方法 2:[菜单]“工具->选项原创 2017-06-20 15:59:21 · 468 阅读 · 0 评论 -
VS2010 如何添加H文件目录和LIB目录
VS2010,编写DLL文件,编译完自己的DLL文件后,要在其它项目中使用,开始遇到很多错,但是在网上搜索了好久后,终于解决了问题。H文件目录:依次点击“项目——XX 属性——C/C++——常规”,在“附加包含目录”中加入H文件所在的文件夹 LIB目录: 依次点击“项目——XX 属性——链接器——常规”,在“附加库目录”中加入LIB所在目录 还没完,在“链接器”原创 2017-06-20 15:57:16 · 744 阅读 · 0 评论